jQuery没有看到单击附加对象

时间:2012-06-26 13:15:35

标签: jquery append

我有这样的代码

$(document).ready(function(){
     $(".add").bind ('click',
        function ()
        {
            $('.main').append('<div class="add">Add element 2</div>');
        });
    });
</script>

<div class="main"><div class="add">Add element</div></div>

当虚拟对象“.add”附加到“.main”时,jquery对点击它们没有反应

2 个答案:

答案 0 :(得分:5)

是的,因为您在创建新元素之前仅将操作绑定到现有的 .add 元素。

您需要将点击绑定到 .main 元素,并将特定选择器作为 on 函数中的第二个参数提供。

$('.main').on('click', '.add', function (){
    $('.main').append('<div class="add">Add element 2</div>');
});

真的非常直观。使用您的代码,您说在页面上找到所有添加元素并将此函数绑定到每个。因此,稍后添加的那些将不会绑定此函数。

使用正确的代码,你会说找到main元素并将一个函数绑定到它,但只在单击带有.add类的子元素时执行该函数

答案 1 :(得分:0)

请勿使用.bind(),而是使用.on(),或者,如果您有jQuery的1.7之前的版本.delegate()

绑定是一次性操作,它不会侦听DOM中的新项目。