这是我的HTML代码:
<div class="wrap">
<a href="#">Button</a>
<a href="#">Button</a>
</div>
我创建了这个jQuery:
$(".wrap a").on("click", function(){
$(this).addClass("new-one");
$(this).siblings("a").removeClass("new-one");
});
$(".new-one").on("click", function () {
console.log("I was hit!");
});
为什么映射在.new-one上的函数不起作用?我该如何解决?
答案 0 :(得分:2)
您需要delegate事件处理程序。这样的事情。
$(".wrap").on("click", ".new-one", function () {
console.log("I was hit!");
});
答案 1 :(得分:0)
上述答案是实现最终目标的好方法。至于为什么你的代码没有按预期行事, 在此示例中,代码为:
$(".new-one").on("click", function () {
console.log("I was hit!");
});
加载脚本时,只运行一次。当这段代码运行时,页面上没有&#34; .new-class&#34;因此,没有附加点击事件。 在容器元素上放置一个click事件,并仅委托给具有.new-one类的子项,它将起作用。