Ответ 1
Я заметил проблему с кнопкой мыши # 3 в chrome (не тестировал ее в других браузерах).
Итак, вот исправление для него (добавьте contextmenu
к событиям запуска):
ИЗМЕНИТЬ
Спасибо Матевуз Фабьянчичузе полезный комментарий.
Я подтверждаю, что с Chrome 55 (я обновил его минуту назад) средний клик мыши запускает новое событие auxclick
.
Таким образом, событие click
может быть вызвано только кнопкой мыши.
Обратите внимание, что auxclick
запускается с помощью кнопок мыши 2 и 3.
$('div.clickable-href').on('click auxclick contextmenu', function(e) {
e.preventDefault();
console.log(e.which);
console.log(e.type);
if(e.type=="contextmenu"){
console.log("Context menu prevented.");
return;
}
switch(e.which) {
case 1:
//window.location = $(this).attr('href');
console.log("ONE");
break;
case 2:
//window.open($(this).attr('href'));
console.log("TWO");
break;
case 3:
console.log("THREE");
break;
}
});
.clickable-href{
width:20em;
background-color:#DDD;
text-align:center;
padding:4em 0;
border-radius:8px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="clickable-href">
CLICK ME - Test all 3 mouse buttons!
</div>