Jquery - 如何检查用事件目标单击了哪个元素?

时间:2014-07-11 12:00:28

标签: jquery

是否可以检查哪个元素被点击了事件目标?

e.on('click', function(){
    if(!$(e.target) == 'input'){
        //do something
    }
});

我尝试了以下构造,但它似乎不起作用,同样如下:

e.on('click', function(){
    if(!$(e.target).is('input')){
        //do something
    }
});

我只是不知道事件目标是否有可能检查这样的事情。

4 个答案:

答案 0 :(得分:3)

您必须指定单击元素的位置。假设我们有这个html:

<强> HTML

<div></div>

<强> JS

$("body").on("click", function(e){
     if($(e.target).is("input")) console.log(e.target)                 
});

fiddle

或者如果你想使用纯粹的js:

document.onclick = function(evt) {
    var evt=window.event || evt; // window.event for IE
    if (!evt.target) evt.target=evt.srcElement; // extend target property for IE
    alert(evt.target); // target is clicked
}

fiddle

答案 1 :(得分:2)

你应该像e一样通过event。要检查点击的元素是否有输入,请在jquery中使用 选择器

$("selector").on('click', function(e){
    if(!$(e.target).is('input')){
    //do something
}
});
jquery中的

is() 选择器

答案 2 :(得分:2)

绝对!以下是一个示例 - http://jsfiddle.net/jayblanchard/h6DNa/

$('*').on('click', function(e) {
    if(!$(e.target).is('input')){
        console.log('clicked');
    }
});

答案 3 :(得分:2)

使用document作为选择器,并将事件e添加为函数的参数:

$(document).on('click', function(e){
    if(!$(e.target).is('input')){
       alert('yes');
    }
});

<强> Demo