Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何在click事件绑定到文档时检查元素是否被单击_Jquery - Fatal编程技术网

Jquery 如何在click事件绑定到文档时检查元素是否被单击

Jquery 如何在click事件绑定到文档时检查元素是否被单击,jquery,Jquery,我想检测按钮上的点击,但事件目标是图像而不是按钮。那么,当单击某个特定元素的子元素时,如何检测该元素的单击呢 $(document).on('click', function(event){ var $this=$('#menu'); var $that=$('#menu-body'); if($this.is(event.target)) { // this line does not work correctly if($that.is(':hidd

我想检测按钮上的点击,但事件目标是图像而不是按钮。那么,当单击某个特定元素的子元素时,如何检测该元素的单击呢

$(document).on('click', function(event){
    var $this=$('#menu'); 
    var $that=$('#menu-body');
    if($this.is(event.target)) { // this line does not work correctly
        if($that.is(':hidden')){
            $that.show();
        } else {
            $that.hide();
        }
    } else {
        if(!$(event.target).is($that)){
            $that.hide();
        }
    }
});
当按钮没有子项时,此代码有效,但当图像位于内部时,此代码无效:

<button id="menu"><img src="pics/menu.png"></button>

这就是我使用普通Javascript所做的

只需检查元素是否有
id=“menu”
,或
最近(“#menu”)
找到元素。如果其中一个为真,您可以单击
#菜单
或子菜单

document.addEventListener('click',函数(事件){
if(event.target.id=='menu'| | event.target.closest('#menu')){
log('clicked#menu或substant');
}
})

要检查是否单击了按钮,请使用
if($(this).attr('id')='menu'){…}或{…}
如果($(this.attr('id')='menu')或如果(event.target.id='menu')
不起作用。希望将其作为答案发布,但在问题暂停时无法发布。。。检查,工作!非常感谢。