我使用jQuery的作爲使.live()是否需要選擇器才能啓動?
$('.mybutton').live('click', function(){
// do something
});
當文檔準備好,但是當文檔準備好有正在使用「myButton的」類,但如果用戶點擊某處一種新的形式出現使用這種被稱爲類'mybutton'的按鈕。但是,這似乎並沒有工作,它沒有所需的處理程序。
這是因爲在那裏沒有'mybutton'類開始在文檔準備好?
我使用jQuery的作爲使.live()是否需要選擇器才能啓動?
$('.mybutton').live('click', function(){
// do something
});
當文檔準備好,但是當文檔準備好有正在使用「myButton的」類,但如果用戶點擊某處一種新的形式出現使用這種被稱爲類'mybutton'的按鈕。但是,這似乎並沒有工作,它沒有所需的處理程序。
這是因爲在那裏沒有'mybutton'類開始在文檔準備好?
如果live()
以往似乎並不爲具有適當的選擇,像你的情況.mybutton
元素的工作,很可能是因爲一些祖先元素.mybutton
正在防止冒泡發生。
如果任何祖先一個.mybutton
有:
return false;
或:
event.stopPropagation();
這將有效地禁用.live()
爲.mybutton
因爲.live()
了需要的情況下,以泡一路根。
@Jas - 好。感謝您糾正我的拼寫錯誤。 :o) – user113716 2010-09-20 15:08:12
這似乎解決了這個問題,對不起早些時候不接受答案,互聯網問題看到:) – wiggles 2010-09-21 19:30:17
@wiggles - 沒問題。 :o)很高興爲你解決。 – user113716 2010-09-21 19:34:56
編輯:好的,我明白了你的問題。
這更多地回答「是否選擇器始終需要live()
?」。
是的。
請參閱此wiki page的注意事項部分。
jquery.live()需要選擇器的原因是explained here。
也許你可以代替試試這個:
$('#myForm').delegate('.mybutton', 'click', function() {
// do something.
})
$()。live應該不依賴於與選擇器匹配的元素的存在或其他方面。這意味着你的問題可能在你的實現中。你可以發佈你的代碼/鏈接到你的代碼? – lonesomeday 2010-09-20 14:44:09
你可以使用'live'外部文件準備好。它在窗口上添加了一個事件監聽器,每次啓動該操作時都會檢查您的jQuery選擇器。 – BrunoLM 2010-09-20 14:45:40