jQuery是一個非常流行的javascript庫,WordPress集成了jQuery,為了兼容其它的js庫,WordPress集成jQuery的時候使用了jQuery的noConflict模式,把jQuery的變量`$`釋放出來了。也就是說,不經過任何處理,直接在WordPress中用這樣的寫法寫jQuery代碼是不行的。
$("#some-element").addClass("some-class");
經常會有朋友在往WordPress主題中添加jQuery代碼時會遇到這樣的錯誤:`Uncaught TypeError: undefined is not a function `,就是因為沒有jQuery的`$`變量。其實解決起來也簡單,只需要把jQuery代碼中的`$`修改成`jQuery`就可以了。如下:
jQuery("#some-element").addClass("some-class");
如果jQuery代碼比較少,這樣修改一下不是什么問題,可是如果代碼很多的話,這樣寫起來會很累,有沒有辦法能在WordPress中像正常寫jQuery代碼的方法寫jQuery代碼呢?辦法總是有的。
在WordPress中正常使用jQuery的幾種方法
1、添加$變量
既然WordPress把`$`釋放出來了,我們把jQuery重新賦給`$`就行了,如下,在wp_head之后添加以下一段代碼即可。
var $ = jQuery.noConflict();
2、使用匿名函數(shù)
首先定義匿名函數(shù),設置形參為`$`,然后執(zhí)行函數(shù)傳遞實參給jQuery
(function($) {
$("#some-element").addClass("some-class");
})( jQuery );
3、使用jQuery設置加載頁面時執(zhí)行的函數(shù)
jQuery(document).ready(function( $ ) {
$("#some-element").addClass("some-class");
});



解決了長期以來困擾我的問題,非常感謝!