显示上下文菜单时,
如果用户点击了上下文菜单,
应隐藏它。
如何实现此功能?
是否可以侦听click_out,当检测到click_out时,隐藏上下文菜单并清除该侦听器?
答案 0 :(得分:2)
您可以绑定到body.click以隐藏它。任何其他元素上的任何点击事件最终都会向身体冒泡:
$('body').click(function() {
$('#menu').hide();
});
上面的示例假设您的自定义菜单的ID为'menu'。根据需要更换。
根据菜单的工作方式(如果您有嵌套菜单,可以点击打开),您可能希望将某些内容与其中的点击绑定,以使用e.stopPropagation()
停止活动;
要清除听众,您可以这样做:
$('body').click(function() {
$('#menu').hide();
$(this).unbind('click');
});
答案 1 :(得分:1)
您可以在文档中添加onclick处理程序,然后检查事件目标是否为菜单。如果点击在菜单上,则不执行任何操作,如果不隐藏它。
jQuery(document).click(function(event) {
if(event.target==$('context-menu'){
$('context-menu').hide();
$(this).unbind('click');
}
}):
答案 2 :(得分:0)
以下是一些工作代码的片段:
document.onclick = Tree.hideContext;
Tree = {
hideContext: function() {
$("#context").hide();
}
}