2016-04-20 80 views
1

我運行一個wordpress博客。 它包括jQuery的

<script type='text/javascript' src='/wp-includes/js/jquery/jquery.js?ver=1.12.3'></script> 
<script type='text/javascript' src=/wp-includes/js/jquery/jquery-migrate.min.js?ver=1.4.0'></script> 

當我運行jQuery 我:

function (a,b){return new n.fn.init(a,b)} 

當我嘗試

$("div") 

Uncaught TypeError: $ is not a function(…)

當餘噸RY jQuery("div")

我:

a.fn.init[203]

我如何使用jQuery?

+3

地方在你的頁面一樣,你有'jQuery.noConflict()',看起來像你使用WordPress,我想WordPress的做的那 –

+0

代替'$',您可以用'jQuery'指jquery庫 –

+3

我想你錯過了第二個腳本src後 –

回答

3

$jQuery()功能,在這種情況下,顯然缺少的一個別名...

一種方式是做,jQuery和其它腳本之間:

<script type="text/javascript"> 
    var $ = jQuery; 
</script> 

它應該工作

+0

$(「div」)完全返回jQuery(「div」):a.fn.init [203]:它返回一個函數,而不是DOM – yarek

+0

它可能是一個jQuery對象,而不是DOM一個......你嘗試過調用jquery方法嗎? – Vincent

0

正如其他人告訴你的,這是由於jQuery.noConflict。您可以使用Immediately-Invoked Function Expression$變量映射到jQuery,並簡單地把表達式裏邊你的邏輯:

(function($) { 
    // $ is now the same as jQuery 

    $('body').remove(); 
})(jQuery); 
// ^^^^^^ we're passing this to the "function($)" call 
0

它看起來像jQuery不會綁定到$變量(以避免衝突,可能)。

如果你想使用$變量,那麼你可以創建一個範圍,其中將綁定到該變量:

(function ($) { 
    // Use $ in this scope 
}(jQuery)); 

如果所有的代碼,當文檔準備好要運行(這通常是如何它完成),那麼你也可以使用jQuery的爲您創建範圍:

jQuery(function ($) { 
    // Document ready, use $ in this scope... 
}); 

您也可以只添加了jQuery全局變量$。如果你確定知道只有jQuery會使用該變量,那麼它可能是好的。

$ = jQuery;