Javascript - Onmiddleclick на div - PullRequest
       0

Javascript - Onmiddleclick на div

2 голосов
/ 01 июня 2011

Мне нужно решение JQuery среднего щелчка для всех новых браузеров.Моя идея заключалась в том, чтобы использовать onmiddleclick ... но этот код не работает.

Надеюсь, кто-то может помочь.

HTML / JS Code

<div id="test" onmiddleclick="alert('middle');" ondblclick="alert('dbl');" > 
 CLICK HERE 
</div>

Пример http://jsfiddle.net/392BK/

Заранее спасибо!Питер

Ответы [ 5 ]

4 голосов
/ 01 июня 2011

Javascript:

<script type="text/javascript">
    function whichButton(e) {
        if (!e) var e = window.event;
        switch (e.which) {
            case 1: alert("Left"); break;
            case 2: alert("Middle"); break;
            case 3: alert("Right"); break;
        }
    }
</script>

HTML:

<div id="test" onmouseup="whichButton()">Click Me</div>

Прочтите эту страницу QuirksMode для получения дополнительной информации о свойствах события.

Если возможно, определенно стоит использовать jQuery для подобных вещей. Кросс-браузерная совместимость для щелчков мышью плохая, и вам понадобится что-то вроде этой демонстрации , чтобы обеспечить поддержку во всех браузерах.

1 голос
/ 01 июня 2011

Обновлен код от "Городка" Это исправит ошибку в Firefox и, возможно, в других браузерах с сообщением «e is undefined».

В HTML вы должны отправить параметр события следующим образом:

<div id="test" onmouseup="whichButton(event)">Click Me</div>

Надеюсь, это поможет вам!

0 голосов
/ 01 июня 2011

Использование onclick и обнаружение кликов было бы хорошей альтернативой.

Проверка это

0 голосов
/ 01 июня 2011

Используйте событие onmousedown.Объект события имеет свойство button, которое содержит битовую маску для нажатых кнопок.Значение 4 означает, что нажата только средняя кнопка.

0 голосов
/ 01 июня 2011

Вот, пожалуйста!

http://jsfiddle.net/392BK/1/

$().ready(function(){
    $("#test").mousedown(function(b){
      if(b.which==1)alert('Left Mouse Button Clicked');
      else if(b.which==2)alert('Middle Mouse Button Clicked');
      else if(b.which==3)alert('Right Mouse Button Clicked');
    });
})

EDIT:

Мое плохо, но типы событий все еще применяются.

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