2012-09-05 35 views
0

我试图切换父div当单击div本身。但我想阻止子div或元素触发该功能。我怎样才能做到这一点?只选父项

//javascript (jquery enabled) 
function toggle(parent_id) { 
    $('.'+parent_id).toggle(); 
} 
<!-- html --> 
<div class="parent parent1" onclick="toggle('parent1')"> 
    <div class="child1"></div> 
    <div class="child2"></div> 
</div> 

<div class="parent parent2" onclick="toggle('parent2')"> 
    <div class="child1"></div> 
    <div class="child2"></div> 
</div> 

谢谢!

更新:我想切换特定的div,因此使用一个函数来传递特定的父ID。

即。如果我点击parent1,parent1切换; 如果我点击parent2,parent2切换

回答

4

下应该做的工作:

$(".parent").click(function(e) { 
    if (e.target == this) { 
     $(this).toggle(); 
    } 
}); 

DEMO:http://jsfiddle.net/Md4U5/

+1

是的,emb争夺“这个”的力量。 –

+0

另外一个@VisioN,我总是喜欢用下面的方法测试目标:'var eTarget = e.target!== null? e.target:e.srcElement;'否则+1为你哈哈 –

+0

@mcpDESIGNS好的赶上,谢谢!但是,它可能会混淆OP;) – VisioN

0

这很简单,只是延长@视觉的答案,以确保所有这些div s有一类parent

$("[class~=parent]").click(function(e) { 
    if (e.target == this) { 
     $(this).toggle(); 
    } 
});