2013-03-13 64 views
0

我对jQuery有点麻烦,希望你能帮助我。我认为这很容易,但我真的不知道:-(如何从jQuery生成的链接运行jQuery函数(通过append())?

问题是,我通过jQuery append()函数编写了一些内容,并且在这个内容中有一个链接,它应该运行我自己的功能,如果按下

例子是在这里:。“!添加项目” http://jsfiddle.net/5ahkD/2/

$(document).ready(function() { 
    $(".add").click(function() { 
     $("#items").append('<div id="item">\n\ 
        <a href="#" class="delete" id="delete">Delete!</a>\n\ 
        Some content inside div element...\n\ 
        </div>'); 
    }); 

    $(".delete").click(function() { 
     $(this).hide(); 
    }); 
    }); 

会产生一些内容与链接(“删除”!),这链接应该点击后消失正如你所看到的。在单独的底部链接上,只有当这个链接不是通过append()写入的时候才可以...

这几乎肯定是非常容易的,但我找不到任何获得这项工作的方式。

+0

你只与类绑定到元素“删除”是*目前*在DOM中,而不是未来添加的元素。 – 2013-03-13 20:23:08

回答

1

您必须将事件处理委托给页面加载期间存在的元素。 jQuery提供的.on()方法就是这么做的。

$(document).on('click', '.delete', function(){ 
    $(this).hide(); // will hide the delete 
    // $(this).parent().hide(); //will hide the .item 
}); 
+0

非常感谢,我明白这一点;-) – Tom 2013-03-13 20:41:02

0

使用Live event handlers。它将为新创建/添加的元素

$("#items").on("click", ".delete", function() { 
    $(this).hide(); 
}); 

如果要实际删除创建的行,利用工作:

$(this).parent().remove(); 
+0

感谢您的帮助:-) – Tom 2013-03-13 20:41:38