在外面想要访问$(function(){})里面的方法

一般我们都会在`$(function(){})` 里面定义一些方法和变量,但是很多时候我们想要在外面去访问这里面的方法和变量,却访问不到,提示方法或者变量未定义,下面我给大家分享两种解决办法. - 第一种是使用jquery.extend的扩展方法 - 第二中是使用函数表达式,并且使之提升为全局函数 先上代码 “` *html代码*
Trigger fun1 Trigger fun2 Trigger fun3

js代码

$(".btn1").on("click",function(){
    $.fun1();
})
$(".btn2").on("click",function(){
    fun2();
})
$(".btn3").on("click",function(){
    fun3();
})

 $(function(){
      /*jquery扩展函数*/
      $.extend({'fun1':function(){
            alert("fun1 from jquery inside11");
      }}); 

      fun2 = function(){
            alert("fun2 from jquery inside22");
      };

      function fun3(){
            alert("fun3 from jquery inside33");
      }

});  

注意看上面的代码,
方法fun1使用的是jquery的扩展函数,在调用的时候一定要写$.fun1,这样才会执行fun1方法里面的事情.
方法fun2使用的是函数表达式的方法,前面不要写var,如果写的话方法fun2不会提升为全局函数.

*对于方法fun3,这是大家常见的一种调用方式,但是这样写毫无疑问会报错,

Uncaught ReferenceError: fun3 is not defined
这是一个常见的错误,因为$(function(){})形成了一个闭包,导致这里的fun3无法被访问到.
如果有写的不对的地方,欢迎大家指正

猜你喜欢

转载自blog.csdn.net/bhq1711617151/article/details/81356465