是否可以检查哪个元素被点击了事件目标?
e.on('click', function(){
if(!$(e.target) == 'input'){
//do something
}
});
我尝试了以下构造,但它似乎不起作用,同样如下:
e.on('click', function(){
if(!$(e.target).is('input')){
//do something
}
});
我只是不知道事件目标是否有可能检查这样的事情。
答案 0 :(得分:3)
您必须指定单击元素的位置。假设我们有这个html:
<强> HTML 强>
<div></div>
<强> JS 强>
$("body").on("click", function(e){
if($(e.target).is("input")) console.log(e.target)
});
或者如果你想使用纯粹的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
}
答案 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 强>