2011-02-22 56 views
0

所以...點擊所有,但一個元件中的容器鏈接

<div id="a"> 
    <img src="/foo/bar.jpg"> 
</div> 

我希望能夠點擊處處div中除了圖像...

$(document).ready(function(){ 
     // Somehow select id A but not the image here?! 
     $("#a").click(function(){ 
      window.location = 'http://google.com'; 
     }); 
}); 

這可能嗎?

我嘗試使用.not()和:not(),但無法弄清楚......任何想法?

回答

2

請參閱jQuery.is documentation。您可以檢查從event.target

$("#a").click(function(e){ 
    if(!$(e.target).is('img')) 
     window.location = 'http://google.com'; 
}); 

Fiddle

+0

感謝您的幫助寫到這裏的例子!愛的小提琴......我以前從未見過! – jcreamer898 2011-02-22 19:07:23

+0

@ jcreamer898 - 歡迎!樂意效勞。小提琴很棒;它也可以用於提問。 – 2011-02-22 19:08:47

0

點擊了哪個元素嘗試是這樣的:

<div style="position:relative;width:100px;height:100px"> 
    <a style="display:block;width:100px;height:100px;position:absolute;top:0px;left:0px" href="http://google.de">Google</a> 
    <img src="/foo/bar.png" style="position:absolute;top:10px;left:10px" /> 
</div> 
1

活動是在其來源的元素的所有父元素觸發。您需要檢查哪些元素觸發事件:

$(document).ready(function(){ 
    $("#a").click(function(e){ 
     if (e.target.nodeName.toLowerCase() !== 'img') { 
      window.location = 'http://google.com'; 
     } 
    }); 
}); 
相關問題