Событие нажатия на колесо мыши Jquery

247
09 декабря 2017, 09:37


У меня есть простая ссылка типа

<div id="link">
   <a href="/somePage/someMethod?argument=2">Click here</a>
</div>

Можно ли с помощью jquery отловить событие нажатия на колесико мыши на элементе $("#link")?

Answer 1

Для этого достаточно лишь отловить событие mousedown, а затем в коллбэке проверить, что свойство which объекта event равняется 2.

document.querySelector("#link").addEventListener("mousedown", function(event) { 
    if (event.which === 2) { 
       console.log("Middle"); 
    } 
}); 
 
// JQuery, если принципиально 
 
$("#link").on("mousedown", function(event) { 
    if (event.which === 2) { 
       console.log("Middle"); 
    } 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

Правда, не знаю, как этот код поведет себя, например, на компьютерах Apple, где средней клавиши мыши вообще нет.

Можно еще проверить свойство button. Но там за среднюю кнопку мыши отвечает значение 1, а не 2, как у which.

Answer 2

Ссылка на документацию...

$("#link").mousedown(function() { 
console.log(event.which); 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<div id="link"> 
  <a href="/somePage/someMethod?argument=2">Click here</a> 
</div>

READ ALSO
Debug JS\TS in Azure Service Fabric application

Debug JS\TS in Azure Service Fabric application

Does anyone know how to configure JS\TS debugging for Visual Studio for Azure Service Fabric projects?

223
Не работает контроллер в Angular 1.5.6

Не работает контроллер в Angular 1.5.6

У меня есть приложение на Angular 15

311
Как переместить элемент массива?

Как переместить элемент массива?

Чтобы массив принял вид: [2,1,3,4];

319