0

我正在处理具有复制搜索块的功能的页面。我还需要能够删除这些额外的搜索块。我有一个附加了点击事件的链接,以便将其删除。这似乎适用于第一个实例,但之后的每个重复实例似乎都不想工作。

任何解释为什么这不起作用?我对 jquery 还是很陌生。

这是代码:

$('.k-item').click(function(){

        var $searchblock = $('#search-block').html();
        var $addsearchblock = '<div class="additional-search-block"></div>';
        $('.additional-search-block').html($searchblock).attr('class', 'added-search').append($addsearchblock);
    });

$('.remove').click(function(e){
                e.preventDefault();
                //alert('hello');
                $(this).parent().hide();
            });

这是我正在处理的页面:

http://www.mniac.com/ELRN5/search-template.html

4

2 回答 2

1

当您绑定 using.click()等时,它仅绑定到绑定时存在于 DOM 中的元素。如果您希望它们在动态添加的元素上工作,则需要将.on()与委托事件一起使用。

$(document).on('click', '.remove', function(e){
    e.preventDefault();
    $(this).parent().hide();
});

如果您有一个比所有目标元素更接近的父元素,document那么您应该绑定到该元素。鉴于您的示例页面:

$('#content').on('click', '.remove', function(e){
    e.preventDefault();
    $(this).parent().hide();
});
于 2013-03-14T23:10:27.183 回答
1

如果您需要一条鱼,请使用:

$('<selector of parent of elements you want to attach events to>').on('click', '.remove', function(e) {
    e.preventDefault();
    $(this).parent().hide();
})

如果您需要钓鱼竿,请阅读事件委托

于 2013-03-14T23:12:04.003 回答