Предотвращение перехода текущего окна по ссылке onlick / .click () при нажатии Ctrl + или среднем щелчке - PullRequest
0 голосов
/ 19 октября 2011

Я использую событие onclick, чтобы сделать весь div навигационной ссылкой.Это работает хорошо, пока вы не используете Ctrl + щелчок или щелчок средней кнопкой мыши, чтобы открыть цель в новой вкладке.Я обнаружил, что новая вкладка действительно открывается, но и текущая вкладка открывается.

Посмотрите, что я имею в виду, нажав Ctrl +, нажав на одно из полей здесь: http://mw.modhistory.com/download-1

Я нене хочу прерывать возможность обычного просмотра, всегда заставляя его перейти на новую вкладку ... у пользователя должна быть опция здесь.Но я хотел бы иметь возможность быстро открывать дюжину этих ссылок в новых вкладках без необходимости многократно возвращаться назад.

У меня была, как мне показалось, блестящая идея использовать protectDefault (), ноэто закончилось тем, что я сделал противоположное тому, что я имел в виду, и полностью лишил возможности открывать новую вкладку (что имеет смысл, когда я действительно задумался о том, что это значит).

Есть идеи?Спасибо!

- Fligg

1 Ответ

0 голосов
/ 19 октября 2011

Я предполагаю, что либо ваш прослушиватель событий отправляет события в функцию маршрутизации / назначения, либо не так много событий щелчка, которые вы ищете для реализации, которые НЕ ПРЕДУСМОТРЕНЫ для этой функции.

В любом случае, вы можете сделать что-то вроде:

// Assuming we already know what the purpose of the click was, and its target
function (e) {
    if (!!e.ctrlKey) { /* CTRL was held during mouse-click */ }
    else { /* not held */ }
}

Что касается кнопок мыши, они довольно запутаны.

Вам должно быть хорошо, используя либо:

e.which /* 1-based: middle-button is #2 */

или

e.button /* 0-based: middle-button is #1 */

Имейте в виду, что в прошлом поддерживалась возможность выяснить, какие кнопки были ДЕЙСТВИТЕЛЬНО плохими за эти годы.Если у вас есть библиотека, которая выполняет абстрагирование, используйте это.В противном случае, кроме предоставления этой функциональности людям с более новыми браузерами или компиляции предыдущих значений кнопок и, он заканчивается синтаксическим анализом версий браузера, что никогда не бывает хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...