2013-05-15 9 views
0

第一條語句是

$(document).on("DOMContentLoaded", function (event) { 
    $(document.body).on('beforeinsert', onBeforeInsert); 
    $(document.body).on('afterinsert', onAfterInsert); 
    $(document.body).on('wait', onWait); 
    $(window).on('load', onLoad); 
}); 

但是當我使用螢火它告訴我,「$沒有定義」。文件中的其他地方一切都按預期工作。實際上,如果我將第一行更改爲

document.addEventListener("DOMContentLoaded", function (event) { 

一切也都正常。我不想這樣做,因爲我希望能夠獲得跨瀏覽器兼容性。

+5

這是否代碼來的'

1

這聽起來像你在嘗試使用JQuery之前沒有包含JQuery JS文件。請記住,瀏覽器將頁面從上到下渲染,因此將對Jquery JS文件的引用添加到頁面的頂部。

+1

對jQuery庫的引用不需要(也不應該)在頁面頂部,就在任何需要jQuery的腳本之前。 –

+0

,或者將其添加到底部,但確保任何需要它的東西都在它之後。如果它位於底部,則甚至不需要DOMContentLoaded事件偵聽器。 –

0

你的js在jquery加載之前運行。嘗試:

1 - 在頁頭參考了jQuery,定義該腳本

前2 - 使用$([...]):

$(function() { 
    $(document).on("DOMContentLoaded", function (event) { 
     $(document.body).on('beforeinsert', onBeforeInsert); 
     $(document.body).on('afterinsert', onAfterInsert); 
     $(document.body).on('wait', onWait); 
     $(window).on('load', onLoad); 
    }); 
}); 
相關問題