简体   繁体   中英

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

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?

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/

So you want to capture every click? Event the right or middle one? Shouldn't the mousedown event do just that?

Of course, she could right click a link just to "Copy Link Location"...

I've seen jquery.rightclick.js code in firebug. There are modifiers with the mousedown and mouseup event like:

altKey ctrlKey

so you can use these two modifiers:

if(evt.altKey || evt.ctrKey)

in jquery.rightclick.js

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM