Detecting middle mouse click event jQuery

前端 未结 2 930
忘了有多久
忘了有多久 2020-12-20 16:04

I want to show a jQuery-UI dialog box as a popup when user clicks on left mouse button or the middle one. It works for left click (I get the alert box and after that the pop

相关标签:
2条回答
  • 2020-12-20 16:09

    Use mousedown or mouseup instead of click. And (unless you are using a very old version of jQuery) use .on() instead of .live():

    $(document).on("mousedown", "a.external", function(e) {
       if( e.which <= 2 ) {
          e.preventDefault();
          alert ("inside if");
       }
       popUp.start(this);
    });
    

    ...where ideally you'd use a parent element much closer to the link than document.

    Demo: http://jsfiddle.net/7S2SQ/

    0 讨论(0)
  • 2020-12-20 16:19

    To get this working fully in Firefox (40.0.3), I had to implement .on('mouseup', fn), as follows:

    $(selector).on('mouseup', function (e) {
    
        switch (e.which)
        {
            // Left Click.
            case 1:
                // By way of example, I've added Ctrl+Click Modifiers.
                if (e.ctrlKey) {
                    // Ctrl+LeftClick behaviour.
                } else {
                    // Standard LeftClick behaviour.
                }
                break;
    
            // Middle click.
            case 2:
                // Interrupts "Firefox Open New Tab" behaviour.
                break;
    
            // Default behaviour for right click.
            case 3:
                return;
        }
    
        // Pass control back to default handler.
        return true;
    });
    
    0 讨论(0)
提交回复
热议问题