一般我们都会在`$(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无法被访问到.
如果有写的不对的地方,欢迎大家指正