簡體   English   中英

即使在腳本之前加載了jQuery,Firebug也會給jQuery“ $ is undefined”錯誤

[英]Firebug giving jQuery “$ is undefined” error even when jQuery is loaded before the script

好,所以我有一個WordPress網站。 它使用了很多jQuery腳本,並且jQuery被加載到頁面的標題中。 我有一小段代碼,應該簡單地向圖像鏈接添加一個類。 我將其放置在文檔的底部,即</body>標記之前。

<script type="text/javascript">
$.noConflict();
$(document).ready(function () {
$('a[href*=".png"], a[href*=".gif"], a[href*=".jpg"]').addClass('zoom');
});
</script>

該腳本不起作用,Firebug給我一個$ is undefined錯誤。 我檢查了各種類似的其他問題,答案似乎無濟於事。

來源頁面在這里: http//sergedenimes.com/2013/01/bruno-bisang-30-years-of-polaroids/

我敢肯定這是另一個引起沖突的插件,但是如果您能提供解決方法,請多多指教。

編輯:哇,謝謝您的快速反應。 似乎它是一個較早的插件,用於渲染$ undefined。 替換jQuery已解決。

您已經完成了jQuery.noConflict(); 在代碼的前面,因此使$不確定。

查看源代碼的第79行。

$.noConflict(); 使$符號回到加載jQuery之前的定義。 如果沒有其他使用該符號的庫,則它返回undefined 這就是它的目的。

如果要使用它而不是將任何其他符號定義為jQuery的快捷方式,則必須使用jQuery作為jQuery函數的符號,而不是$

改為這樣做:

<script type="text/javascript">
$.noConflict();
jQuery(document).ready(function () {
    jQuery('a[href*=".png"], a[href*=".gif"], a[href*=".jpg"]').addClass('zoom');
});
</script>

或者,如果您只想在.ready()處理函數中使用$ ,則可以使用.ready()的功能進行分配,如下所示:

<script type="text/javascript">
$.noConflict();
jQuery(document).ready(function ($) {
    $('a[href*=".png"], a[href*=".gif"], a[href*=".jpg"]').addClass('zoom');
});
</script>

或者,如果您的代碼不只是要使用$.ready()處理函數,則可以在閉包中重新定義$ ,以使其他庫可以在自己的代碼中使用$ ,但是您可以在自己的jQuery中使用它jQuery代碼里面的閉包:

<script type="text/javascript">
$.noConflict();
(function($) {
    $(document).ready(function () {
        $('a[href*=".png"], a[href*=".gif"], a[href*=".jpg"]').addClass('zoom');
    });
    $.each(whatever...)
})(jQuery);
</script>

或者,您可以為jQuery定義一個新的快捷方式符號:

<script type="text/javascript">
var $$ = $.noConflict();
$$(document).ready(function () {
    $$('a[href*=".png"], a[href*=".gif"], a[href*=".jpg"]').addClass('zoom');
});
</script>

嘗試:

<script type="text/javascript">
    jQuery.noConflict();
    jQuery(document).ready(function($) {
        $('a[href*=".png"], a[href*=".gif"], a[href*=".jpg"]').addClass('zoom');
    });
</script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM