有一个jQuery .click()事件只在内部另一个.click()事件中触发一次

dav*_*qet 2 javascript jquery click

如果我有一个jQuery .click()事件触发"body"和"div",我怎么才能让它只执行div而不是单击div时的body?基本上,我正在创建自己的上下文菜单,我想要点击元素外的任何地方(在这种情况下,"div.button")来关闭菜单.

基本的例子:

  $("body").click(function(event){
    if($("div.menu").is(":visible")){
      $("div.menu").hide();
    }
  });

  $("div.button").click(function(event){
    $("div.menu").show();
  });
Run Code Online (Sandbox Code Playgroud)

你可以猜到,$("body").click()会阻止/隐藏菜单甚至显示.

一点指导将非常感激.谢谢阅读!

Sen*_*kin 5

你必须停止传播这样的事件

$("div.button").click(function(event){
  event.stopPropagation();
  // do something
});
Run Code Online (Sandbox Code Playgroud)

而不是只点击你的按钮