2012-11-29 66 views
0

我不太確定如何點擊一個div,顯示您點擊父母后? 有意義嗎?如果點擊,然後如果點擊嵌套div

這是一個示例代碼片段。

$('.item').bind('click', function(e){ 
var showme = $(this).find(".itemcontrols"); 
$(showme).toggle(); 
}); 

$('#add').bind('click', function(e){ 
alert(); 
});  

<div class="item ui-state-default"> 
    <div class="itemcontrols" style="display: block;"> 
     <div id="add">add</div> 
     <div id="full">full</div> 
     <div id="del">del</div> 
    </div> 
</div> 

.item{display:none;} 
+0

我試圖點擊#將格但父DIV上有一個切換顯示隱藏。 – Blynn

+0

目前還不清楚你正在努力達到什麼..這樣的代碼看起來很好..你可以更具體的哪些div和預期? –

+0

這會幫助你:http://api.jquery.com/event.stopPropagation/ – Jai

回答

1

您可以添加一個.itemcontrol類的.itemcontrols孩子。

<div class="item ui-state-default"> 
    <div class="itemcontrols"> 
    ... 
    <div id="add" class="itemcontrol">add</div> 
    ... 
    </div> 
</div>​ 

並採用.stopPropagation()功能停止所有.itemcontrol元件的傳播。

$('.itemcontrols .itemcontrol').on('click', function(e) { 
    e.stopPropagation(); 
});​ 

除了這個,我會建議你使用.on綁定的事件,這是目前推薦的方式。

$('.item').on('click', function(e) { 
    $(".itemcontrols", this).toggle(); 
}); 

$('.itemcontrols .itemcontrol').on('click', function(evt) { 
    evt.stopPropagation(); 
});​ 

See it live here.