How to trap "open in a new tab" clicks in jquery.click

Jason Butler picture Jason Butler · Jun 15, 2009 · Viewed 7.2k times · Source

I have a jquery script that attaches a click event to every link, running an action when the link is clicked. This has been working great, but I just got some betatester feedback that's foiling me.

The user was right-clicking on the link and opening it in a new tab. When she did this, jquery didn't trap the click. BAD USER. I reproduced this with cmd-click as well.

Is there a way to trap these gestures, or this an inherent limitation?

Answer

karim79 picture karim79 · Jun 15, 2009

See if you can somehow make use of jQuery rightclick plugin:

http://abeautifulsite.net/notebook/68

Usage:

$(document).ready( function() {

    // Capture right click
    $("#selector").rightClick( function(e) {
        // Do something
    });

    // Capture right mouse down
    $("#selector").rightMouseDown( function(e) {
        // Do something
    });

    // Capture right mouseup
    $("#selector").rightMouseUp( function(e) {
        // Do something
    });

    // Disable context menu on an element
    $("#selector").noContext();

});

As for the cmd-clickie bit, I'm really not sure. In case it's helpful, here's the jQuery hotkeys plugin:

http://www.webappers.com/2008/07/31/bind-a-hot-key-combination-with-jquery-hotkeys/