JQuery獲取append後的動態元素:live()和on()

字號+ 編輯: Snake 修訂: 种花家 來源: newlifeclan 2023-09-09 我要說兩句(1)

append之後的dom節點無法獲取到? 遇到這個問題了嗎? 本文來解釋如何解決這個問題。

jquery通过 live() 方法附加的事件处理程序适用于匹配选择器的当前及未来的元素(比如由脚本创建的新元素)

$("ul").append("<li class='name'>名称</li>");

【错误】然后通过下面的方式,这样是不能获取的 :

$(".name").click(function (){
   alert("获取到append后的节点");
})

【正确】正确的方法是:

$(".name").live("click", function() {
  alert("获取到了");
});

jquery 1.7+之后用on代替live,on()方法在被选元素及子元素上添加一个或多个事件处理程序

<div id="one"></div>
$('#one').append("<p id='two'>test1</p>");
append后结果:
$('#one').append("<p id='two'>test1</p>");

【错误】直接用下面的方式,不会弹出窗口的:

$("#two").on("click",function(data){
    alert(data);
});

【正确】改成下面的方式:

$("body").on("click","#two",function(data){
    alert(data);
});
閲完此文,您的感想如何?
  • 有用

    0

  • 沒用

    0

  • 開心

    0

  • 憤怒

    0

  • 可憐

    0

1.如文章侵犯了您的版權,請發郵件通知本站,該文章將在24小時内刪除;
2.本站標注原創的文章,轉發時煩請注明來源;
3.交流群: 2702237 13835667

相關課文
  • JS如何防止父節點的事件運行

  • nodejs編寫一個簡單的http請求客戶耑代碼demo

  • 說一則爲什麽後耑開發人員不選擇node.js的原因

  • 使用Sublime Text3 開發React-Native的配置

我要說說
網上賓友點評
1 樓 IP 113.47.***.216 的嘉賓 说道 : 很久前
必须在on后面再添加一个子dom作为目标事件dom参数, dollar符号前面的dom还不能是动态创建的