单击容器中的一个元素以进行链接

时间:2011-02-22 18:50:25

标签: javascript jquery

所以...

<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(),但无法弄清楚......有什么想法吗?

4 个答案:

答案 0 :(得分:2)

jQuery.is documentation。您可以查看event.target

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

Fiddle

答案 1 :(得分:1)

事件在其发起的元素的所有父元素上触发。您需要检查触发事件的元素:

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

答案 2 :(得分: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>

答案 3 :(得分:0)

需要查看event.targetJSBIN

上写一个例子