Is there a close event for the browser contextmenu

二次信任 提交于 2019-12-28 05:52:52

问题


I'm catching the contextmenu event using jQuery like this:

$(document.body).on("contextmenu", function(e){
    //do stuff here
});

So far, so good. Now I want to execute some code when it closes but I can't seem to find a correct solution for this.

Using something like the following would catch some of the cases, but not nearly all:

$(document.body).on("contextmenu click", function(e){});

It wouldn't be executed when:

  • the browser loses focus
  • an option in the contextmenu is chosen
  • the user clicks anywhere in the browser that's not on the page

note: I'm not using a jQuery context menu, I'm just using it to catch the event.


回答1:


Following code may help you. jsfiddle

var isIntextMenuOpen ;
$(document).on("contextmenu", function(e){

    isIntextMenuOpen = true;
});
function hideContextmenu(e){
       if(isIntextMenuOpen ){
            console.log("contextmenu closed ");
       }

     isIntextMenuOpen = false;
}
$(window).blur(hideContextmenu);

$(document).click(hideContextmenu);


来源:https://stackoverflow.com/questions/12801898/is-there-a-close-event-for-the-browser-contextmenu

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!