2012-10-07 47 views
1

我有一個div寬度id="main"。 我想單擊時,它的身體背景變成黑色。對主div使用jQuery指令,但子div除外

我做到這一點的驗證碼

$("#main").click(function(){ 
    $("body").css("background", "#000"); 
}); 

我在DIV與id="second"另一個DIV與id="main"

<div id="main"> 
    <div id="second"> 
    </div> 
</div> 

我不想身體背景改變,當我與點擊DIV id="second"。我怎樣才能做到這一點?

如果你想阻止只能用ID第二個孩子,那麼你可以做這樣

回答

3

Working example

$("#second").click(function (event) { 
    event.stopPropagation(); 
});​ 
+0

發帖前請正確測試。有一個錯誤,阻止它的工作。 – nhahtdh

+0

@nhahtdh。它在Chrome中運行良好。我錯誤的錯字。 –

+0

爲什麼你的原始代碼在Chrome中工作真的很神祕(我自己測試過)。 – nhahtdh

1

Live Demo

$("#main").click(function(event){ 
    if(event.target.id != "second") 
    { 
     $("body").css("background", "#000"); 
    } 
}); 
+0

這會阻止所有的孩子,而不僅僅是#second。 –

+0

[現在它允許點擊兒童](http://jsfiddle.net/KTEJk/1/)#second。看到我的答案。 –

+0

@flem問題沒有說明他的第二個孩子。 – Adil