Я новичок в обработке событий JavaScript, я хотел бы вызвать событие при перемещении мыши и щелкнуть левой кнопкой мыши элемент div. Моя текущая реализация заключается в проверке этого e.which == 1 при запуске функции события mousemove. Однако я прочитал, что свойство e.which устарело (https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/which). Мой код:

div.addEventListener("mousemove", myEventFunction)

function myEventFunction(e){
    if (e.which == 1){
       //do something
    }

}

Есть ли альтернатива для выполнения этой операции?

7
DavNej 21 Дек 2016 в 18:57
1
Нет. Это для событий клавиатуры. Для мыши это button. Кроме того, keycode устарел.
 – 
Praveen Kumar Purushothaman
21 Дек 2016 в 18:59
1
Не видел события мыши, моя проблема
 – 
Kevin Kloet
21 Дек 2016 в 19:00
Конечно .. Не беспокойтесь. @KevinKloet
 – 
Praveen Kumar Purushothaman
21 Дек 2016 в 19:00
Вместо этого используйте e.key, чтобы проверить
 – 
Prashanth Benny
21 Дек 2016 в 19:01
Вы уверены? Что это дает? Чувак, это MouseEvent! Вы говорите KeyboardEvent!
 – 
Praveen Kumar Purushothaman
21 Дек 2016 в 19:02

1 ответ

Лучший ответ

Вы можете использовать event.button, если он будет событие мыши.

Свойство MouseEvent.button только для чтения указывает, какая кнопка была нажата на мыши, чтобы вызвать событие.

function myEventFunction(e) {
    e = e || window.event;
    if ("buttons" in e) {
        return button;
    }
    var button = e.which || e.button;
    return button;
}

Вышеупомянутая функция возвращает значение button.

3
Praveen Kumar Purushothaman 21 Дек 2016 в 18:58
1
E.buttons у меня работает! Большое спасибо за быстрый ответ.
 – 
DavNej
21 Дек 2016 в 19:04
Не забудьте принять мой ответ, нажав на кнопку с галочкой рядом с моим ответом через 10 минут. Также обратите внимание, что кнопки отличаются от кнопок.
 – 
Praveen Kumar Purushothaman
21 Дек 2016 в 19:04
1
Да, я заметил разницу между ними. Еще раз спасибо.
 – 
DavNej
21 Дек 2016 в 19:14