Jquery每个函数和单击事件都不起作用

时间:2013-06-21 09:39:50

标签: jquery

我想删除具有相同类元素的每个选定元素。我的jquery编码如下所示

$(".del_layer").each(function(){        $(this).click(function(){
           $(this).parent().remove();
                });

            });

我的html结构是

<li class="select_layerList" data-refind="0">
<img width="20px" src="tmp_card_imgs/a.png">
Layer 0:Image
<span class="del_layer" style="cursor:pointer;">X</span>
</li>
<li class="select_layerList" data-refind="0">
<img width="20px" src="tmp_card_imgs/b.png">
Layer 0:Image
<span class="del_layer" style="cursor:pointer;">X</span>
</li>

但是每个功能都不起作用。 我该如何解决这个问题

5 个答案:

答案 0 :(得分:1)

工作正常。

http://jsfiddle.net/4LeuA/

确保已加载DOM,将代码置于document.ready()

$(document).ready(function() {

});

答案 1 :(得分:0)

您可以删除每个功能,因为您可以通过类名选择它们,并将您的脚本放在文档就绪,如

$(document).ready(function(){
    $('.del_layer').on('click',function(){
        $(this).parent().remove();
    });   
});

答案 2 :(得分:0)

为什么不尝试这样的事情

 $(".del_layer").on('tap',function(){
  $(this).parent().remove();
 });

答案 3 :(得分:0)

无需遍历.each(),只需将事件应用于选择器并删除其父级:

$(".del_layer").click(function(){
    $(this).parent('li').remove();
});

您可以使用.closest()函数遍历所需的父级。

$(".del_layer").click(function(){
    $(this).closest('li').remove();
});

答案 4 :(得分:0)

使用事件委派,您可以设置一次相同的处理程序:

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