Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何关闭jQuery上下文菜单_Javascript_Jquery_Contextmenu_Jquery Events - Fatal编程技术网

Javascript 如何关闭jQuery上下文菜单

Javascript 如何关闭jQuery上下文菜单,javascript,jquery,contextmenu,jquery-events,Javascript,Jquery,Contextmenu,Jquery Events,我正在jQuery中显示一个contextmenu,但无法关闭它 以下是我正在注册的活动: 函数openContextMenu(事件){ event.preventDefault(); $(“#自定义菜单”) .css({ 顶部:event.pageY+“px”, 左:event.pageX+“px” }) .show(100); isContextMenuOpen=true; } 函数closeContextMenu(事件){ 日志(“点击调用文档”); 如果(isContextMenuOpe

我正在jQuery中显示一个contextmenu,但无法关闭它

以下是我正在注册的活动:

函数openContextMenu(事件){
event.preventDefault();
$(“#自定义菜单”)
.css({
顶部:event.pageY+“px”,
左:event.pageX+“px”
})
.show(100);
isContextMenuOpen=true;
}
函数closeContextMenu(事件){
日志(“点击调用文档”);
如果(isContextMenuOpen){
$(“自定义菜单”).hide();
log(“隐藏上下文菜单”);
}
isContextMenuOpen=false;
}
函数寄存器菜单(){
$(文件)({
上下文菜单:函数(事件){
openContextMenu(事件);
},
单击:功能(事件){
关闭上下文菜单(事件);
}
});
}

我相信您只是输入了一个错误:

closeContextMenu
中的
$(“自定义菜单”)
应具有ID标识符:

$(“#自定义菜单”).hide();
此外,除非全局声明了
isContextMenuOpen
,否则它的作用域将保持在
openContextMenu
,因此
hide
方法将永远不会执行。无论如何,您都不需要它,因为无论元素是否可见,
hide
都会起作用

请尝试以下方法:

功能关闭上下文菜单(事件){
$(“#自定义菜单”).hide();
log(“隐藏上下文菜单”);
}
另外,为了插入我自己的答案,对于一些非常复杂的上下文菜单处理,请看以下内容:


你说得对,我应该使用一个ID标识符。