6

我有一些这样的 jQuery 代码:

$("#add").click(function(event){
    $("#list").append('<a class="remove" href="#">x</a>');

    return false;
});

$('.remove').live('click', function(){
    alert("123");
});

如果单击 class=remove,我希望它发出警报 123。但这不会发生。我认为这是一个简单的想法,但我必须遗漏一些东西。

有任何想法吗?

谢谢。

4

3 回答 3

11

Live 已弃用,请继续使用

$(document).on('click','.remove',function(){
alert("123");
});
于 2013-02-12T13:06:18.960 回答
2

无需委托即可添加元素和绑定事件的另一种方法:

$("#add").click(function(event){
    $("<a />", {
        "class": "remove",
        href: "#",
        text: "x"
    }).on("click", function() {
        alert("123");
        return false;
    }).appendTo("#list");

    return false;
});

避免使用live方法,因为它已被弃用并最终在 jQuery 的最后一个版本中被删除。

于 2013-02-12T13:07:37.727 回答
2

尝试委托功能..因为您将其附加到list...您可以使用#list性能更好的document

 $('#list').on('click','.remove', function(){
     alert("123");
});

您可以通过链接阅读有关on()事件的更多信息

于 2013-02-12T13:16:53.517 回答