2013-12-12 30 views
0

我試過這段代碼來打開內部div並關閉div。但我有問題,當我點擊外部的div然後它不是很接近。只是我需要幫助,當我點擊div外,那麼內部div應該是接近。點擊div內的div應該是關閉

這裏是代碼:

<div class="userNameBox">prashant birajdar 
    <div class="profile" style="display:none" tabindex="-1"> 
     here is the code.   
    </div> 
</div> 

這裏是js代碼

$(".userNameBox").click(function() { 
    $(".profile").toggle("slow"); 
}); 

,這裏是jsfiddel http://jsfiddle.net/prashantbirajdar123/tY2vU/

+0

因此,您希望在'.userNameBox'之外單擊以關閉'.profile'? – j08691

+0

你的代碼捕獲點擊內部的div - 你沒有外部處理程序(除非你在代碼中有其他地方)。 –

+0

外意味着文件... –

回答

1

我認爲最好的解決方案是在body上添加一個事件,這個事件會在click上隱藏配置文件,並且在你的userNameBox函數中停止事件傳播。

$(".userNameBox").click(function(e) { 
    e.stopPropagation(); 
    $(".profile").toggle("slow"); 
}); 

$(document).click(function(e){ 
    $(".profile").hide("slow"); 
}); 
2

監聽的身體,看看點擊來自

來到
$(document).click(function(evt) { 
    if($(evt.target).closest(".userNameBox").length===0 && $(".profile").is(":visible")) { 
     $(".profile").slideUp("slow"); 
    } 
}); 
+0

如果他們點擊'.profile',該怎麼辦? –