我添加了一个如下的点击事件,并想检查目标是否有特定的父级。
$(document).click(function(event){
// Check here if target has specific parent for example -> #parent
});
如何才能做到这一点?
我添加了一个如下的点击事件,并想检查目标是否有特定的父级。
$(document).click(function(event){
// Check here if target has specific parent for example -> #parent
});
如何才能做到这一点?
我相信这也有效.. AFAIK jQuery 事件在调用事件时使用文字元素而不是 jQuery 对象。基本上this
应该是具有普通 JavaScript 属性的普通 DOM 元素。
$(document).click(function(event)
{
let myparent = $(this.parentNode); //jquery obj
let parent = $(this.parentNode)[0]; //plain DOM obj
let myself = $(this); //jquery obj;
let $elf = this; //plain DOM obj
});
注意:有时使用“self”作为变量是不好的/导致与某些库发生冲突,所以我使用了 $elf。$elf 中的 $ 并不特殊;不是 jQuery 约定或类似的东西。
$(document).click(function(event){
var $parent = $(this).parent();
// test parent examples
if($parent.hasClass('someclass')) { // do something }
if($parent.prop('id') == 'someid')) { // do something }
// or checking if this is a decendant of any parent
var $closest = $(this).closest('someclass');
if($closest.length > 0 ) { // do something }
$closest = $(this).closest('#someid');
if($closest.length > 0 ) { // do something }
});
我过去可靠地使用过它:
var target = $( event.target )
这将为您提供对已调用事件的元素的 jQuery 对象的引用。您可以使用相同的方法并查看父级是否为“#parent”,如下所示:
var target = $( event.target )
if (target.parent().attr('id') == "#parent") {
//do something
}