是否有人试图成功隐藏上下文菜单blur
事件?我想要做的就是在鼠标未放置在上下文菜单div
内时隐藏自定义右键单击菜单。在jquery中隐藏onblur事件的上下文菜单
这使用jquery上下文菜单插件。
是否有人试图成功隐藏上下文菜单blur
事件?我想要做的就是在鼠标未放置在上下文菜单div
内时隐藏自定义右键单击菜单。在jquery中隐藏onblur事件的上下文菜单
这使用jquery上下文菜单插件。
你提到blur
事件明确,但我不认为这实际上你需要什么,因为div
你提到可能将永远不会被聚焦或模糊的上下文菜单。
您应该使用mouseout事件:
假设您的上下文菜单中有 'contextMenuContainer' 的ID,这应该覆盖它:
$('#contextMenuContainer').mouseout(function() {
$(this).hide();
});
更多看到jQuery Events/mouseout文档。
更新:
我想你链接到插件页面上注册鼠标移出事件处理程序,它是射击就好了。我应该注意到它每次更改菜单项时都会触发,因此您需要检查事件目标以确保鼠标实际上已经退出整个菜单。
在回调中使用模糊。 虽然没有经过测试。你是否想恢复其他模糊的右键点击功能? 我认为这会更好地执行其他类型的事件。
$("input").blur(function() {
window.oncontextmenu = function() {
return false;
}
});
虽然我意识到他在字面上要求“onblur”,但他所描述的并不是真正的模糊事件。 – 2009-09-20 16:06:48
所以你应该downvote他,而不是我 – 2009-09-20 18:49:38
@Elzo提问的人不应该downvoted,因为他们不完全理解他们问。如果他们这样做了,他们可能不需要首先提出问题。但是,给出错误信息的答案是不同的。我低估了,因为我觉得这个答案是错误的,显然没有花太多精力去真正阅读这个问题(只有标题) – 2009-09-21 13:37:16
如果您想知道焦点何时离开容器区域,但没有容器内的子控件触发事件,请使用mouseleave
。
$('#menu').on('mouseleave', function(){
$(this).hide();
});
mouseout
或blur
是不是你在这种情况下所需要的,因为当容器内任意子控件接收鼠标焦点,导致含有这些隐藏菜单就会被触发。
我试图使用鼠标,但似乎事件没有触发。什么可能会出错? – kratz 2009-09-21 11:43:46
它可能是其他事件在mouseout上触发事件处理程序停止传播事件。你能更具体地说明你正在使用哪个插件吗?我可以找到多个“jquery上下文菜单插件”。 – 2009-09-21 13:28:42
我正在使用来自此链接的插件。 http://www.trendskitchens.co.nz/jquery/contextmenu/ 如何解决事件传播? – kratz 2009-09-21 20:26:12