2012-11-12 44 views
2

點擊紅色區域時,它會提示'紅色',點擊藍色區域時會提示'藍色'和'紅色'! 如何使它只警示'藍色'然後停止。因爲我只需要div名稱的前面。jQuery〜只有內部div id名稱

http://jsfiddle.net/FFZuD/1/

HTML

<div id="block1" style="width: 300px; height: 200px; background-color: red;"> 
     <div id="block2" style="width: 100px; height: 100px; background-color: #09F; "> 
     </div> 
</div> 

JS

$('div').click(function(){ 
    alert($(this).attr('id')); 
}); 
+0

http://jsfiddle.net/FFZuD/2/ – nhahtdh

回答

3

您需要使用event.stopPropagation() jQuery函數。它更好地使用this.id而不是$(this).attr('id');因爲它會更有效率。

Live Demo

$('div').click(function(event){ 
    event.stopPropagation() 
    //alert($(this).attr('id')); 
    alert(this.id); 
}); 
+1

請:'警報($(本).attr( '身份證'));'=>'警報( this.id);' – gdoron

+0

非常感謝你! – user962408

+0

不客氣。 – Adil

0

你正在尋找的是stopPropagation其防止冒泡事件。

DEMO:http://jsfiddle.net/meo/FFZuD/5/

$(".block").click(function(e) { 
     e.stopPropagation();    
     /*etc...*/ 
});​​