Javascript jQuery.click()事件在另一个.click()事件中仅触发一次
如果我对“body”和“div”都有一个jQuery.click()事件触发,我如何让它在单击div时只对div执行,而不是对body执行?基本上,我正在创建自己的上下文菜单,我希望单击元素之外的任何位置(在本例中为“div.button”)以关闭菜单 基本示例:Javascript jQuery.click()事件在另一个.click()事件中仅触发一次,javascript,jquery,click,Javascript,Jquery,Click,如果我对“body”和“div”都有一个jQuery.click()事件触发,我如何让它在单击div时只对div执行,而不是对body执行?基本上,我正在创建自己的上下文菜单,我希望单击元素之外的任何位置(在本例中为“div.button”)以关闭菜单 基本示例: $("body").click(function(event){ if($("div.menu").is(":visible")){ $("div.menu").hide(); } }); $
$("body").click(function(event){
if($("div.menu").is(":visible")){
$("div.menu").hide();
}
});
$("div.button").click(function(event){
$("div.menu").show();
});
正如您所猜测的,$(“body”).click()会阻止/隐藏菜单甚至不显示
如果您能给我一点指导,我将不胜感激。谢谢你的阅读 您必须停止像这样传播事件
$("div.button").click(function(event){
event.stopPropagation();
// do something
});
只会单击您的按钮
event.stopPropagation()
您想在click元素中使用event.stopPropagation()
。因此:
$( 'div.button' ).click(function( e ) {
e.stopPropagation();
$( 'div.menu' ).show();
});
你们的速度真是太快了。谢谢谢谢你的帮助,先生。非常感谢你。