绑定多个动态添加的元素

时间:2014-01-03 20:13:34

标签: javascript jquery jquery-mobile

我正在使用jQuery Mobile,我需要将一些点击事件绑定到动态添加的内容。看起来我正在这样做,我的代码只运行我在我的代码中附加tap事件的最后一个元素。例如,当我点击元素A时,此代码将警告“您好”,但是当我点击元素B时它将警告“再见”。

我确信这是一个简单的错误,但我一直在试图弄清楚我的脑袋。

$(document).off("tap").on("tap", "#A", function() {
    alert('Hi');
});

$(document).off("tap").on("tap", "#B", function () {
    alert('Bye');
}); 

1 个答案:

答案 0 :(得分:4)

这是因为您将事件附加到文档,然后在下一行中解除绑定。因此,当您关闭文档上的A并再次绑定b的文档时,tap上的绑定将丢失。

尝试:

$(document).off("tap");
$(document).on("tap", "#A", function() {
    alert('Hi');
});

$(document).on("tap", "#B", function () {
    alert('Bye');
}); 

你也可以链接它,以避免一次又一次地创建jquery对象。

$(document).off("tap")
  .on("tap", "#A", function() {
    alert('Hi');
}).on("tap", "#B", function () {
    alert('Bye');
});