Как перехватывать клики открытия в новой вкладке в jquery.click

У меня есть сценарий jquery, который прикрепляет событие click к каждой ссылке, запуская действие при нажатии на ссылку. Это отлично работает, но я только что получил отзывы бета-тестеров, которые меня сбивают с толку.

Пользователь щелкнул правой кнопкой мыши по ссылке и открыл ее в новой вкладке. Когда она это сделала, jquery не перехватил клик. ПЛОХОЙ ПОЛЬЗОВАТЕЛЬ. Я также воспроизвел это с помощью cmd-click.

Есть ли способ поймать эти жесты, или это неотъемлемое ограничение?


person Jason Butler    schedule 15.06.2009    source источник
comment
Я очень сомневаюсь, что это возможно, учитывая события DOM, которые вы в любом случае полагаетесь на вкладки до даты в браузерах. Я не знаю, как вы отличите открытие в новом окне.   -  person annakata    schedule 15.06.2009


Ответы (3)


Итак, вы хотите фиксировать каждый клик? Событие правое или среднее? Разве событие mousedown не должно делать именно это?

Конечно, она могла щелкнуть правой кнопкой мыши по ссылке, чтобы просто «Копировать ссылку»…

person Ionuț G. Stan    schedule 15.06.2009
comment
В итоге я пошел по этому пути. Это фиксирует все клики, а это именно то, что я хотел. Это также привело к упрощению остального кода. Спасибо! - person Jason Butler; 16.07.2009

Посмотрите, можете ли вы как-то использовать плагин правой кнопки мыши jQuery:

http://abeautifulsite.net/notebook/68

Применение:

$(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();

});

Что касается бита cmd-clickie, я действительно не уверен. Если это будет полезно, вот плагин горячих клавиш jQuery:

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

person karim79    schedule 15.06.2009
comment
Это не относится к cmd+click, не так ли? - person Sampson; 15.06.2009
comment
Я добавил ссылку на ресурс, который может быть полезен для этой цели, но я действительно не уверен, насколько он может быть полезен. - person karim79; 15.06.2009
comment
Да, и еще есть тач-нос-локоть-щелчок назад, но я не могу найти подходящий плагин :P - person karim79; 15.06.2009

Я видел код jquery.rightclick.js в firebug. Существуют модификаторы с событием mousedown и mouseup, например:

altKey ctrlKey

поэтому вы можете использовать эти два модификатора:

если(evt.altKey || evt.ctrKey)

в jquery.rightclick.js

person Community    schedule 15.06.2009