在单击事件上调用不正确的选择器

时间:2017-06-09 17:05:13

标签: javascript jquery

有以下JS:

for (var catId in this.data.categories) {
  (function (catId) {
    $("li#tsCat-" + catId).click(function (event) {
      $(this).addClass("tax-active");
      event.stopPropagation();
    })
  }(catId))
  for (var floor in this.data.floors) {
    (function (floor, catId) {
      var selector = "#tsCatFloor_" + catId + "_" + floor;
      $(selector).on("click", function (event) {
        $(this).addClass("active-filt");
        event.stopPropagation();
      });
    }(floor, catId));
  }
}

此代码形成两个级别列表 在单击第1级链接时,它会执行正确的单击处理程序$("li#tsCat-" + catId)

但是在点击第二级时它再次执行第一个处理程序$("li#tsCat-" + catId) 它需要执行第二个处理程序$(selector) 问题在哪里?

1 个答案:

答案 0 :(得分:0)

抱歉,我没有提供完整视图,但有什么好处我发现了一个对每个人都有用的解决方案: 如果您正在添加.click()事件,请确保您已将数据(已针对其调用.click)放入DOM。否则.click永远不会被调用。