2011-03-14 79 views
5

我有一个DIV与类关联但不是ID的层次结构。我怎样才能删除被点击的物品?jquery检测和删除点击的元素

<div> 
    <div class="minibox" onclick="remove_me()">Box1</div> 
    <div class="minibox" onclick="remove_me()">Box1</div> 
    <div class="minibox" onclick="remove_me()">Box1</div> 
    <div class="minibox" onclick="remove_me()">Box1</div> 
    <div class="minibox" onclick="remove_me()">Box1</div> 
</div> 
<script> 
    function remove_me(){ 
    ///remove the clicked div 
    } 
</script> 

回答

10
$('div .minibox').click(function(e){ 
    $(e.target).remove(); 
}); 
1
<div class="box">Box 1</div> 
<div class="box">Box 2</div> 
<div class="box">Box 3</div> 
<div class="box">Box 4</div> 
<div class="box">Box 5</div> 

那么你可以使用

$(".box").bind("click", function() { 

    $(this).fadeOut(500, function() { 
    // now that the fade completed 
    $(this).remove(); 
    }); 

}); 

实例JSBIN

+1

为什么.fadeIn()? – meo 2011-03-14 14:29:49

+1

'fadeIn'是一个错字,它是'fadeOut'并且增加了一个例子,这个建议是给出一个很好的移除效果,所以它不会只是“消失”......这都是关于UI技术的,我习惯于让用户知道发生了什么,而且我永远不会像消失div/table row /其他元素一样,而不会消失的简单效果。 – balexandre 2011-03-14 14:42:29

+0

当然可以。看看我的例子。用户应该知道在点击之前会发生什么。但fadeOut会更喜欢像我一样删除;)至少在回调中删除。在你的例子中,淡入淡出的动画没有时间完成,因为元素将被删除。 – meo 2011-03-14 14:44:56

5
$('.minibox').click(function() { $(this).remove(); }); 
2

里面的jQuery的document.ready()事件,你需要点击处理程序绑定到div

$(document).ready(function() { 
    $('.minibox').click(function(e){ 
     $(this).remove(); 
    }); 
}); 

退房jQuery的remove()click()

事件处理函数内部的this引用被点击的元素。

1
$(document).ready(function() { 
    $('.minibox').click(function() { 
    $(this).remove(); 
    }); 
}); 

结账remove()

1

如果你可以使用jQuery来注册你的事件很容易为:

$(".minibox").click(function(){ 
    $(this).remove(); 
}); 

代码示例上jsfiddle

1

您的HTML:

<div class="box">some content</div> 
<div class="box">some content</div> 
<div class="box">some content</div> 
<div class="box">some content</div> 
ect... 

您的jQuery

$(function(){ //make sure your DOM is ready 
$("div.box").click(function(){ // bind click on every div that has the class box 
    $(this).remove(); //remove the clicked element from the dom 
}); 
}); 

演示与淡出动画: http://jsfiddle.net/qJHyL/1/(和花哨的删除图标)

2

变化

<div class="minibox" onclick="remove_me()">Box1</div> 

<div class="minibox" onclick="remove_me(this)">Box1</div> 

然后使用

<script> 
function remove_me(elm){ 
    $(elm).remove(); 
} 
</script>