最近在做項目的時候發現的一個問題,通過ajax動態載入出來的一個button值綁定不了點擊事件。我使用的是datatables這款表單插件,表單內容是通過ajax動態渲染出來的。 解決方案: 通過Google,我發現在jquery1.7版本之前通常使用 .live() 這個事件,但是這個方法在1.9 ...
最近在做項目的時候發現的一個問題,通過ajax動態載入出來的一個button值綁定不了點擊事件。我使用的是datatables這款表單插件,表單內容是通過ajax動態渲染出來的。
解決方案:
通過Google,我發現在jquery1.7版本之前通常使用 .live() 這個事件,但是這個方法在1.9版本被移除了
所以,我們需要找一個替代的方法 .on(),首先讓我們先來看下這個事件的介紹
看介紹,這兩個事件做的事情差不多,然後我在具體的介紹中發現了這個
第一點:.on()事件綁定的元素必須是頁面中已經存在的,也就是靜態html中存在的元素,才會被綁定。
第二點:通過selector參數進行代理,什麼意思呢?就是說當這個參數不為空的時候,.on()綁定的事件不會直接在綁定的元素上觸發,它會自動匹配內部節點,然後在該節點觸發
怎麼理解第二點呢?通俗點說就是:一個父親(已綁定靜態頁面的元素)管著一大堆兒子(動態載入出來的元素),我們首先找到了父親,然後告訴他其中一個兒子的名字和要乾的事情(具體綁定的事件),然後他就會去讓你指定的這個兒子去乾。這樣好理解吧。
到這裡,問題就解決了。具體寫法像這樣:
以上是我解決該問題的整個過程,希望能夠幫助到你,共同進步!!!
本文參考文檔: