JQuery .click()选择器忽略<a> child elements?</a>

时间:2013-08-26 20:29:04

标签: jquery

当用户点击某个元素或其中的任何内容时,我需要触发一个事件,除非他点击<a>元素。

这就是我现在正在尝试的事情:

$( "div:not(a)" ).click(function(e) {
    alert("hello world");
});

你可以在这里更好地理解它:

http://jsfiddle.net/cMBP3/1/

我该怎么做?

3 个答案:

答案 0 :(得分:2)

您可以使用:

$("div").click(function (e) {
    if (e.target.nodeName.toLowerCase() != 'a') alert("hello world");
});

<强> jsFiddle example

答案 1 :(得分:2)

由于div永远不是a,因此无效。

您必须检查目标元素是否为a标记,如下所示:

$('div').click(function(event) {
    var $target = $(event.target);
    if(!$target.is("a") ) {
      alert("hello world");
    }
});

我已更新你的小提琴:Have a look

答案 2 :(得分:1)

这是未经测试的,但希望能给你一个想法:

$(function(){
    $('div').click(function(e){
         if($(e.target).is('a')){
              e.stopPropagation();
         }
    });
});