2012-03-25 65 views
0

我有一个关于与WordPress和jQuery问题的问题:我已经注意到,WordPress的有自定义模板的引入jQuery插件的更多问题:

在一个字,当我把头像里面的代码就像我写了一个deblug函数,如 $(document).ready(function(){alert(“ciao”)});

他不工作,firefox调试告诉我“$不是一个函数”。

如果我把里面的代码页脚是这样的:

jQuery(document).ready(function() { 

    alert("ciao"); 

}); 


</script> 

我sospiceus是WordPress的内部有it..but更多的JS库,如果我写

(function($) { 

$ Works! You can test it with next line if you like 
console.log($); 

    })(jQuery); 

$接受它(理论上)..为什么这一切?

回答

1

首先,$()只是jQuery()函数的别名。 $只是一个简写名称,因此每次使用jQuery时都不会写jQuery

现在我已经看到很多人抱怨wordpress“劫持”jQuery。会发生什么情况是,而不是$作为jQuery,它被用作别的东西,因此错误$ is not a function - 但我们仍然有longhand jQuery()函数来救援。

但人们倾向于使用$,因为它更短,但是当$被“劫持”时,我们该如何做到这一点?它的倒闭救援也:

//others "$" for another library out here 

(function($){ 
    //"jQuery" as "$" safely in here 
}(jQuery)); 

//others "$" for another library out here 

的代码做什么上面是创建一个接受我们的名字$参数的函数,并立即执行,通过jQuery作为参数。它大致相当于这一点,但没有函数的名称:

function no_name($){ 
    //"jQuery" as "$" safely in here 
} 
no_name(jQuery); 

所以里面的功能,$是一个局部变量。其中使用$它属于通话期间传递的变量,即jQuery而不是全球劫持$