0

我正在尝试动态添加元素并在 JQuery 中为它们设置点击侦听器。无论出于何种原因,removeGroup当我单击元素“删除”按钮时,事件都不会触发。任何帮助都会很棒。

$('.removeGroup').click(function(event){
    alert();
});
               
cartPopper.click(function(event){
    $('#selectedGroupList').find('.selected').remove();
    for(group in selectedGroups)
    {
        var group_id = selectedGroups[group];
        var name = $('.' + group_id).text();
        $('#selectedGroupList')
            .append
            (
            '<li style="font-size:20px" class="selected ' + group_id + '">'
            + '<a href="javascript: void(0);" class="">'
            + '<button class="btn btn-danger removeGroup" type="button">'
            + 'Remove'
            + '<text class="groupValue" style="display: none;">'
            + group_id + '</text></button></a>'
            + name
            + '</li>'
            );
     }
     cartPop.show();
});
4

1 回答 1

5

通俗地说,您编写的代码仅将单击事件绑定到已存在的元素,而不将其绑定到新创建的元素。

通过使用事件委托模型,您可以使其绑定到当前和未来的元素。我认为我真的不擅长解释,所以请参阅delegate()on了解更多信息。

代替

$('.removeGroup').click(function(event){
    alert();
});

$(document).on('click', '.removeGroup', function(event){
    alert();
});
于 2012-11-14T18:06:35.187 回答