Jquery 事件处理程序不';行不通 A $(“li”)。单击(函数(){ console.log(“你好”); }); $(“ul”)。单击(“click”,“li”,function(){ console.log(“你好”); }); $(“ul”)。追加(“B”);
大家好,, 当我按下“A”键时,控制台中有2个“Hello”-日志,当我按下“B”键时,只有一个来自UL事件处理程序的“Hello” 有人能解释这种行为吗Jquery 事件处理程序不';行不通 A $(“li”)。单击(函数(){ console.log(“你好”); }); $(“ul”)。单击(“click”,“li”,function(){ console.log(“你好”); }); $(“ul”)。追加(“B”);,jquery,Jquery,大家好,, 当我按下“A”键时,控制台中有2个“Hello”-日志,当我按下“B”键时,只有一个来自UL事件处理程序的“Hello” 有人能解释这种行为吗 多谢各位 这是因为您附加的B没有附加onclick事件处理程序,因为当您执行以下操作时,它在DOM中不存在: <ul> <li>A</li> </ul> $("li").click(function(){ console.log("Hello"); }); $("ul").on("c
多谢各位 这是因为您附加的B
没有附加onclick事件处理程序,因为当您执行以下操作时,它在DOM中不存在:
<ul>
<li>A</li>
</ul>
$("li").click(function(){
console.log("Hello");
});
$("ul").on("click", "li", function(){
console.log("Hello");
});
$("ul").append('<li>B</li>');
您将需要使用如下内容分别向Bli
注册onclick事件处理程序(抱歉,这是一个非常糟糕的示例):
$b=$(“”)
$b.text('b')
$b.click(函数(){console.log(“Hello”);})
$(“ul”)。追加($b);
这是因为您附加的B
没有将onclick事件处理程序附加到它,因为当您这样做时,它不存在于DOM中:
<ul>
<li>A</li>
</ul>
$("li").click(function(){
console.log("Hello");
});
$("ul").on("click", "li", function(){
console.log("Hello");
});
$("ul").append('<li>B</li>');
您将需要使用如下内容分别向Bli
注册onclick事件处理程序(抱歉,这是一个非常糟糕的示例):
$b=$(“”)
$b.text('b')
$b.click(函数(){console.log(“Hello”);})
$(“ul”)。追加($b);
在“li”标记上的第一次单击事件处理程序按预期在上运行,因为在创建处理程序时存在。它对B不起作用,因为在创建处理程序时B不存在
“ul”标记上的第二个click事件处理程序也通过其父级捕捉对的单击。此外,它还能够捕获对B的单击,因为“on”方法能够跟踪您在参数中指定的动态子级。在“li”标记上的第一个单击事件处理程序在A上按预期工作,因为在创建处理程序时A就存在。它对B不起作用,因为在创建处理程序时B不存在 “ul”标记上的第二个click事件处理程序也通过其父级捕捉对的单击。此外,它还能够捕获对B的单击,因为“on”方法能够跟踪您在参数中指定的动态子项。的可能重复
$b = $('<li/>')
$b.text('B')
$b.click(function(){ console.log("Hello"); })
$("ul").append($b);