2010-09-20 24 views
1

我使用jQuery的作爲使.live()是否需要選擇器才能啓動?

$('.mybutton').live('click', function(){ 
    // do something 
}); 

當文檔準備好,但是當文檔準備好有正在使用「myButton的」類,但如果用戶點擊某處一種新的形式出現使用這種被稱爲類'mybutton'的按鈕。但是,這似乎並沒有工作,它沒有所需的處理程序。

這是因爲在那裏沒有'mybutton'類開始在文檔準備好?

+0

$()。live應該不依賴於與選擇器匹配的元素的存在或其他方面。這意味着你的問題可能在你的實現中。你可以發佈你的代碼/鏈接到你的代碼? – lonesomeday 2010-09-20 14:44:09

+0

你可以使用'live'外部文件準備好。它在窗口上添加了一個事件監聽器,每次啓動該操作時都會檢查您的jQuery選擇器。 – BrunoLM 2010-09-20 14:45:40

回答

1

如果live()以往似乎並不爲具有適當的選擇,像你的情況.mybutton元素的工作,很可能是因爲一些祖先元素.mybutton正在防止冒泡發生。

如果任何祖先一個.mybutton有:

return false; 

或:

event.stopPropagation(); 

這將有效地禁用.live().mybutton因爲.live()了需要的情況下,以泡一路根。

+0

@Jas - 好。感謝您糾正我的拼寫錯誤。 :o) – user113716 2010-09-20 15:08:12

+0

這似乎解決了這個問題,對不起早些時候不接受答案,互聯網問題看到:) – wiggles 2010-09-21 19:30:17

+0

@wiggles - 沒問題。 :o)很高興爲你解決。 – user113716 2010-09-21 19:34:56

0

編輯:好的,我明白了你的問題。
這更多地回答「是否選擇器始終需要live()?」。


是的。
請參閱此wiki page的注意事項部分。

jquery.live()需要選擇器的原因是explained here

0

也許你可以代替試試這個:

$('#myForm').delegate('.mybutton', 'click', function() { 
    // do something. 
}) 
相關問題