jquery append()元素单击事件

时间:2013-11-23 12:00:47

标签: javascript jquery

我有两个ul标签 here is jsbin link

我的脚本是

$("#to-do li").click(function(){
    alert("I'm to-do li");
    $(this).appendTo("#done");
});

$("#done li").on('click', function(){
    // this event is not fired
    alert("I'm done li");
    $(this).appendTo("#to-do");
});

并要求点击" to-do li" ,它应附加到"完成li"反之亦然。

第一个功能正常运行正常。但第二个根本没有被解雇。 点击" #done li",再次调用第一个函数。 请帮忙...

1)为什么("#to-do li")事件在点击$(" #done li")时触发。 2)如何实现这个

1 个答案:

答案 0 :(得分:4)

由于您正在处理动态元素结构,因此需要使用事件委托

$('#to-do').on('click', "li", function () {
    console.log("I'm to-do li");
    $(this).appendTo("#done");
});

$('#done').on('click', "li", function () {
    // this event is not fired
    console.log("I'm done li");
    $(this).appendTo("#to-do");
});

演示:Fiddle