首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >实现contextmenu时出现jQuery事件问题?

实现contextmenu时出现jQuery事件问题?
EN

Stack Overflow用户
提问于 2010-01-14 22:06:34
回答 3查看 687关注 0票数 2

当显示上下文菜单时,

如果用户点击离开上下文菜单,

应该把它藏起来。

如何实现此功能?

是否可以侦听click_out,当检测到它时,隐藏上下文菜单并清除该侦听器?

EN

回答 3

Stack Overflow用户

发布于 2010-01-14 22:11:34

您可以绑定到body.click以隐藏它。任何其他元素上的任何单击事件最终都会气泡到主体:

代码语言:javascript
运行
复制
$('body').click(function() {
   $('#menu').hide();
});

上面的例子假设你的自定义菜单的ID是' menu‘。根据需要更换。

根据你的菜单的工作方式(如果你有嵌套的菜单,你可以点击打开),你可能想要绑定一些东西到它里面的点击,以使用e.stopPropagation()停止事件;

要清除监听程序,可以执行以下操作:

代码语言:javascript
运行
复制
$('body').click(function() {
   $('#menu').hide();
   $(this).unbind('click');
});
票数 2
EN

Stack Overflow用户

发布于 2010-01-14 22:11:14

您可以将onclick处理程序添加到文档中,然后检查事件目标是否为菜单。如果单击位于菜单上,则不执行任何操作,否则将其隐藏。

代码语言:javascript
运行
复制
jQuery(document).click(function(event) {
  if(event.target==$('context-menu'){
    $('context-menu').hide();
    $(this).unbind('click');
  }
}):
票数 1
EN

Stack Overflow用户

发布于 2010-01-15 21:55:54

下面是一些工作代码的片段:

代码语言:javascript
运行
复制
document.onclick = Tree.hideContext;

    Tree = {
        hideContext: function() {
            $("#context").hide();
        }
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2064566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档