我試圖觸發我自己的自定義事件作爲全局事件,以便我的頁面上的任何內容都可以監聽它們並作出反應,但是,對於動態添加的內容,它不起作用。看到我的小提琴在:http://jsfiddle.net/6TMkG/8/Jquery全局事件和動態添加的內容
據我所知,該事件觸發的頁面中的任何元素,jQuery知道有一個處理程序,它似乎並沒有觸發事件的li
的即使他們確實有一個處理程序。
任何人都知道如何解決此問題?
我試圖觸發我自己的自定義事件作爲全局事件,以便我的頁面上的任何內容都可以監聽它們並作出反應,但是,對於動態添加的內容,它不起作用。看到我的小提琴在:http://jsfiddle.net/6TMkG/8/Jquery全局事件和動態添加的內容
據我所知,該事件觸發的頁面中的任何元素,jQuery知道有一個處理程序,它似乎並沒有觸發事件的li
的即使他們確實有一個處理程序。
任何人都知道如何解決此問題?
試試這個
$("#b2").click(function() {
//$.event.trigger("randomEvent");
$('li').trigger('randomEvent');
});
對不起,我完全錯過了..我沒有看到你的問題的第一部分..自定義事件..看起來你正在關聯的randomEvent,但你不會觸發該事件時,它是與它..
確保在Document.Ready函數中添加觸發器事件,以便evnet處理程序與元素可用時相關聯。
如果您想要全局事件,那麼您可以綁定文檔上的事件處理程序,並在文檔中的任何元素上觸發它。
$(document).on('randomEvent', callback);
$('ul').click(function() {
$(this).trigger("randomEvent");
});
如何是從處理程序我已經在我的例子,其工作方式不同UL?我希望觸發頁面上任何具有處理程序的內容的事件,在我的示例中爲li:s,這應該是jquery處理全局事件的方式,但它似乎不能很好地處理上/代理/住。 –
@ErikNordenhök關鍵是你需要在文件上聽到事件。 – xdazz
你的意思是像我更新的例子,或者我誤解你? http://jsfiddle.net/6TMkG/11/ 我想我可以做這樣的事情,但爲了讓代碼更有意義,感覺就像我希望處理程序綁定到它所做的那樣的頁面元素。 –
是的,這確實有效,但是如果我添加更多動態內容,應該通知有關DOM中不是li或高於li的事件的通知。然後我必須在該項目上添加另一個觸發器,而我希望有一個觸發器和任何東西,無論它在哪裏定位DOM,都有一個處理程序獲取事件。 –