如何在下一次单击上下文菜单时关闭上下文菜单jquery

时间:2015-08-17 08:45:31

标签: javascript jquery html css

我从Javascript Toolbox实现了jQuery ContextMenu插件,它的工作非常精彩。当我在某些指定区域中右键单击时,它会打开我想要的上下文菜单,因此除了某些内容之外,它在所有内容中都很有效:

当我点击其他地方的上下文菜单时,它不会关闭。它刚刚关闭某些特定区域,而我想在点击外部上下文菜单鼠标时关闭它。

提前致谢。

1 个答案:

答案 0 :(得分:1)

$(document.body).click(function(e){
   var $box = $('#ContextMenu');
   if(e.target.id !== 'ContextMenu' && !$.contains($box[0], e.target))
      $("#ContextMenu").hide();
});

您需要检查冒泡到document.body的点击事件。在该事件处理程序中,您将查找事件目标ID,并将其与您不想包含的元素以及作为该排除元素的子元素的所有元素进行比较。

$。contains()检查DOM节点是否包含您指定的另一个节点。所以

!$.contains($box[0], e.target)

表示,如果e.target不包含节点$ box [0]

请参阅http://api.jquery.com/jQuery.contains/