我在這裏使用了Backbone,但我也遇到了非Backbone網站的這個問題。新添加的對象不會響應頁面加載的jQuery事件
本質上,我的問題是我在一個JavaScript文件base.js中定義了一些'全局'jquery函數。然後,我加載新的元素,並使用Backbone,AJAX或任何您喜歡的異步調用將它們附加到頁面中。這很好,除了新的對象似乎沒有鏈接到我在pageload上聲明的jQuery事件。 (對不起,這裏的深入淺出 - 通常我在正確的寫法是新手)
例如,假設我宣佈在裝上頁面加載JS文件:
$('.element').hover(function(){alert('hi world')});
但後來我追加一個新元素在頁面加載之後,這個懸停不起作用。
任何人都可以解釋:
- 這是爲什麼呢?
- 我是否可以強制使用新的附加元素來處理已經聲明的當前事件?
我懷疑(2)可能不可能(我必須在附加後重寫事件),但有興趣知道是否有某種解決方案。
改爲使用jQuery的「.on()」功能。 –
使用live(); http://api.jquery.com/live/編輯:我看到Diodeus'on()是繼任者。改用它。 –
@TimJoyce - '.live()'現在已經被棄用了。改用'.on()'(jQuery 1.7+)或'.delegate()'。 –