Jq動態添加元素綁定事件is not defined

問題原因

當我們使用jq的時候,會遇到這種情況:我們加載完了頁面後,需要通過Jq來動態添加一些元素並綁定事件。
舉個栗子:

var newnode=document.createElement("div");
newnode.innerHTML="<button onclick='ok()'>確定</button>"
$("#xxx").appendChild(newnode);

當我們這樣添加元素並且綁定onclick事件的時候是無效的。
會報錯ok is not defined。
這是因爲頁面在加載完成的時候,事件已經綁定了,你動態添加的元素無法綁定事件,這個時候就需要手動綁定。

問題解決

事件委託

  • 動態添加直接寫$(document)
$(document).on('click','.wc-but-js',function(){ //.wc-but-js是class
				alter("123123");
			});
  • 指定父元素
$(“#xxx”).on('click','.wc-but-js',function(){ // #xxx 是父元素id
				alter("123123");
			});
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章