1

我无法将 jQuery 事件绑定到动态创建的列表项。

btnRemoveItem这是由jQuery添加开始后未触发的事件。

$('#btnAddStore').on('click', function(){
  (...)
  $.ajax({
    success: (function(result) {
      (...)
      var li = jQuery('<li/>', {
          'id': object['id']
         }).append('<span title="Remove item from list" class="btnRemoveItem"></span>')
           .append('<span class="text">' + name_adr[0] + '</span>')
           .append('<span class="address">' + name_adr[1] + '</span>');

      $(li).appendTo('#'+ country + ' ul');
    }
  });
});

我在这里查看了类似的问题,但我没有找到任何可以解决我的问题的答案。我从这段代码中遗漏了什么?

4

3 回答 3

9

使用.on()这种方式

$(document).on('click','#btnAddStore', function(){...});
于 2013-04-17T11:08:49.280 回答
2

尝试这个

$(document).on('click','#btnAddStore', function(){...});

$('#btnAddStore').on("scroll", ....)仅将滚动事件绑定到执行此语句时存在的那些元素,即如果在执行此语句后动态添加任何具有类 wrapper1 的新元素,则不会为这些元素执行事件处理程序。

$(document).on("scroll","#btnAddStore", ...)另一方面,将向文档对象注册一个事件处理程序,并使用事件冒泡在具有类 `wrapper` 的元素内发生滚动时调用处理程序,因此它将支持元素的动态添加。

看这里

于 2013-04-17T11:10:30.963 回答
1

将委托与 .on() 一起使用:

$(document).on('click', '#btnAddStore', function(){...});
于 2013-04-17T11:09:15.267 回答