jQuery - 用它添加类和运行函数

时间:2017-11-12 18:33:11

标签: javascript jquery

这是我的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上的函数不起作用?我该如何解决?

2 个答案:

答案 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类的子项,它将起作用。