2013-04-29 59 views
1

我似乎无法让我的jQuery的权利删除一个div当我删除的东西jQuery的删除的div的onclick

代码是:

<div class="amend_order" data-item_key="1367264719mz7"> 
    <p>Home Made Ice Cream</p> 
    <p class="small_text">Pistachio</p> 
    <p> 
     <a class="edit_item ui-link" href="javascript:void(0);">Edit</a> 
     ---- 
     <a class="deleter ui-link" href="javascript:void(0);">Delete</a> 
    </p> 
</div> 

我已经尝试使用

$(this).closest('div').remove(); 

不幸的是这不起作用。

基本上有几个divs的列表,我只希望它们在点击时消失。

+0

我认为你需要展示更多的JavaScript。 – 2013-04-29 19:59:54

+0

你正在研究哪个元素? – alexn 2013-04-29 19:59:56

+1

如果没有更多的javascript上下文,我们无法成功回答这个问题。具体来说,“this”是什么? – sircapsalot 2013-04-29 20:00:32

回答

0

尝试指着DIV:

$('div.amend_order').click(function(){ 
    $(this).remove(); 
}); 

或删除按钮,当点击:

$('a.deleter.ui-link').click(function(){ 
    $(this).parent('div').remove(); 
}); 
+0

谁投了我票,至少提供了一个正确的解释 – DextrousDave 2013-04-29 20:05:07

+0

只要事件泡沫,这将工作。我要添加的唯一东西是检查事件的原始目标是删除按钮。 – 2013-04-29 20:05:49

1

HTML

<div class="amend_order" data-item_key="1367264719mz7"> 
    <p>Home Made Ice Cream</p> 
    <p class="small_text">Pistachio</p> 
    <p> 
    <a class="edit_item ui-link" href="javascript:void(0);">Edit</a> 
    ---- 
    <a class="deleter ui-link" href="javascript:void(0);">Delete</a> 
</p> 
</div> 

JS

$('.deleter').on('click', function(){ 
    $(this).closest('div').remove(); 
}) 

现场样品http://jsfiddle.net/Ny346/

0

试试这个:

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

Live Sample

5

如果你的容器div的动态添加,你需要使用事件代表团。试试这个:

$("#container").on("click", ".amend_order .deleter", function() { 
    $(this).closest("div").remove(); 
}); 

DEMO:http://jsfiddle.net/m6jVP/

如果他们在动态添加,那么事件绑定实际上不会找到任何元素,因此不会正在单击时执行。此事件处理针对#container内的任何元素在点击时与选择器.amend_order .deleter匹配。

您可以使用选择器替换#container,选择器与包含您要定位的这些div的稳定(静态)元素相匹配,如有必要可使用document