我有以下問題/疑問,希望有人能幫助我。 假設我在加載頁面時有幾個JavaScript事件正在初始化。在這個頁面中,我允許用戶點擊幾個動作按鈕(有這些事件)。現在,在這種情況下,其中一個按鈕使ajax調用,其中一個成功的結果將使該按鈕消失,並使另一個按鈕出現(我從ajax響應注入此html)。在這一刻我想添加一個事件到這個新的按鈕,所以在我注入html後,我這樣做了。當我點擊這個按鈕時,我希望第一個按鈕再次出現,而這個按鈕會消失。現在這個新按鈕(在開始的那個按鈕)必須再次有同樣的事件!我是否需要再次初始化該事件?是不是有辦法讓這種自動化方式成爲可能?我的意思是,如果我爲某個div的所有人開了幾個事件,並且在該div中加載了另一個Ajax,那麼不應該對同一事件立即做出迴應嗎? 謝謝ajax調用後重新初始化dom事件
1
A
回答
1
jQuery有一個實時事件註冊功能,它可以保持事件對所有當前和未來匹配的選擇器都是正確的。 (jQuery.com)
至於簡單的Javascript,是的,您需要重新註冊該事件。
1
如果您只是隱藏原始按鈕(例如display:none
),那麼您在開始時附加到它的所有事件仍然會在那裏。
在初始頁面加載後創建的新按鈕(例如,通過從Ajax請求中添加它們)將需要在DOM中安全地附加事件。
jQuery有一個自動執行此功能的功能,它稱爲live。這可以讓你指定一個選擇器,並且會不斷監視它。一旦新對象出現在與原始選擇器匹配的DOM中,事件也將附加到它。
進行實時文檔可以在這裏看到:http://docs.jquery.com/Events/live
+0
改性爲jQuery的1.7,它取代.live()用。對(中) – Kzqai 2012-07-27 22:34:35
相關問題
- 1. jquery插件重新初始化後ajax
- 2. Javascript Ajax重新初始化
- 3. ajax調用後重新初始化jQuery函數
- 4. 在ajax事件上重新初始化jquery插件
- 5. ajax更新後重新初始化jsf自定義組件
- 6. 如何在AJAX調用後用新數據重新初始化tinyMCE?
- 7. 分配事件元素被破壞並重新初始化後重新
- 8. 在ajax請求後重新初始化processing.js草圖
- 9. 在AJAX內容加載後重新初始化Kalthura mwEmbed-player-static.js
- 10. 初始化後添加backbone.js事件
- 11. Guice在初始化對象後調用初始化方法
- 12. 初始化後更新jqTree?
- 13. 重新初始化堆棧
- 14. Java Arraylist重新初始化
- 15. 重新初始化jquery anythingslider
- 16. 重新初始化「ThisWorkbook.Path」
- 17. 重新初始化數組
- 18. Jquery DataTable重新初始化
- 19. 重新初始化航點
- 20. 重新初始化Java類
- 21. 重新初始化面板
- 22. 在用ajax調用替換列表後再次初始化jquery
- 23. 在AJAX調用後刷新DOM和jquery
- 24. Catch ngRepeat初始化事件
- 25. 網絡中斷後重新初始化/重新連接終端
- 26. jQuery selectmenu在ajax調用後不會初始化
- 27. 如何重新初始化已從DOM中刪除的按鈕?
- 28. 初始化jQuery插件($ .live()) - DOM加載
- 29. Colorbox Ajax數據 - jScrollPane首次初始化正確,但是之後.destroy重新初始化不工作,空的colorbox
- 30. 初始化調用deleteLater後立即()
修改爲jQuery的1.7,它取代.live()用。對() – Kzqai 2012-07-27 22:34:25