是否有人試圖成功隱藏上下文菜單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