2016-09-09 55 views
-3

我正在通過Wordpress構建單頁應用程序,並且我注意到點擊函數等不會在我使用AJAX加載的內容上觸發。事件監聽器不適用於使用jQuery加載的內容.load()

例如,假設每當單擊鏈接時都會觸發警報。該警報不會觸發通過AJAX加載的內容......我認爲這是因爲沒有事件偵聽器會附加到該新內容。

處理這個問題的最佳方法是什麼?

+0

在完成成功的AJAX調用時,將事件綁定/重新綁定到新項目。 – Santi

+0

將事件監聽器附加到新內容。 –

+0

最好的方法是委派點擊事件:https://learn.jquery.com/events/event-delegation/ –

回答

-1

好了,我想答案可能是使用在容器內容jQuery的委託被加載到:http://www.w3schools.com/jquery/event_delegate.asp

這是一個好辦法?有什麼缺點嗎?

+0

可能,取決於你的情況。我當然不會使用'document'作爲目標,我建議不要使用w3schools作爲參考或學習東西的地方。 –

+0

我切換到.on(),我的功能正常工作。我不知道.on()爲添加到DOM的元素動態工作。你認爲W3有什麼不好? –

+0

它通常將不良做法稱爲「最佳」做法,沒有注意到參考文獻中某些易受攻擊方法的危害,並且通常只是一種不良資源。請使用官方文檔,例如javascript/dom/css的MDN或jquery的jquery.com。這些都是由社區維護的,所以您可以確定他們正在使用最新的實踐。 –