我在旋轉木馬內部有一個項目,並綁定了.click()事件綁定到它。它的工作效果非常好,因爲該項目位於旋轉木馬的第一頁,並且在加載時可見。jQuery .click()在旋轉木馬內的項目上
但是,如果我移動旋轉木馬以使其變得不可見,然後移回視口中,click()事件不再起作用了?
我可能只是不得不以某種方式再次註冊時,它是可見的?
BTW單擊用於打開一個模式jQuery UI的對話框
感謝
我在旋轉木馬內部有一個項目,並綁定了.click()事件綁定到它。它的工作效果非常好,因爲該項目位於旋轉木馬的第一頁,並且在加載時可見。jQuery .click()在旋轉木馬內的項目上
但是,如果我移動旋轉木馬以使其變得不可見,然後移回視口中,click()事件不再起作用了?
我可能只是不得不以某種方式再次註冊時,它是可見的?
BTW單擊用於打開一個模式jQuery UI的對話框
感謝
跟着你評論,我發現確實是點擊不工作了,當你通過傳送帶循環。
我不知道這個插件是如何工作的。我想它可能會重新創建元素,並且事件處理程序會以某種方式丟失。
解決此問題的方法是使用事件委派。
基本上你將委託點擊的執行上.quickQoute
到一個容器,你的情況傳送帶元素#inner
:
$('#inner').on('click', '.quickQoute', function() {
$("#quickQoute").dialog({ closeText: ' ' });
$("#quickQoute").dialog("open");
return false;
});
更多關於事件代表團.on()
這真是太棒了!我喜歡每天學習新事物。優雅,解釋性和實用性。很棒的工作,謝謝你! – Zoran 2012-02-23 15:27:58
我建議使用liveQuery plugin
這會在創建元素時自動將事件綁定到元素。例如:
$(".some_appearing_button").livequery('click',function() {
alert("You clicked me!");
});
這使您可以先設置事件處理程序,並且必須有在以後的時間創建的元素,就像你的旋轉木馬做的選項。
livequery是絕對不相關了:jQuery實現*本機*事件委託自1.3 ... – 2012-02-23 14:50:49
livequery是一個完全不同的概念從.live(),如果這就是你的意思。否則,請詳細說明:) – Flater 2012-02-23 16:13:47
迪迪埃,我得到它的綁定到一個點擊事件可以改變爲委託/功能,但有一些事情,這些功能仍然不能做。例如,在我創建的應用程序中,我將'datepicker'類添加到需要atepicker的文本框中。 Livequery在此類上觸發,並自動清理文本框輸入。我無法使用on/delegate工作,因爲這些工作與事件一起工作,但沒有「item_is_created」事件。因此,livequery。在這些情況下它仍然有很好的用途。 – Flater 2012-02-23 16:22:11
我們如何幫助您找到我們看不到的代碼中的錯誤?在您的問題中發佈代碼和/或創建一個[jsfiddle](http://www..jsfiddle.net) – 2012-02-23 09:29:50
http://www.elveneleven.com/WhyGo/ 對不起,我認爲這可能只是一個「重新註冊正在移動的傳送帶上的點擊事件」或類似的一般性建議會很好......雖然確切的代碼也會很酷;) – Zoran 2012-02-23 11:21:16
您是否在談論點擊時打開的對話框「快速報價」?無論我做什麼都適合我(參加巡迴演出,與手風琴一起演奏......) – 2012-02-23 13:10:23