Как правильно обрабатывать поперечную платформу EventListener для отдельных событий левой или правой кнопкиJavascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Как правильно обрабатывать поперечную платформу EventListener для отдельных событий левой или правой кнопки

Сообщение Anonymous »

У меня был скрипт, который возвращал элемент, щелкенный или щелкнул правой кнопкой мыши, оригинально я сделал это, используя следующее: < /p>
document.addEventListener('click', function(e) {
const targetEl = e.target;
console.log('lc', targetEl);
clickCell(targetEl);
}, false);

document.addEventListener('contextmenu', function(e) {
e.preventDefault();
const targetEl = e.target;
console.log('rc', targetEl);
rightClickCell(targetEl);
}, false);
< /code>
Это, казалось, сработало, однако я заметил какое -то странное поведение с левым щелчком, то есть, когда мышь была перемещена во время щелчка, иногда я получал родительский элемент (хотя родительский EL полностью покрыт ) и понял, что это происходило, когда указатель мыши перешел от одной дочерней ячейки в другую во время события клика. Тогда некоторые подходящие щелчки будут проигнорированы ... и меняются Слушатель событий Click в MouseUp решит проблему левого щелчка, но запустите оба события на щелчок правой кнопкой мыши, поэтому, после некоторого тестирования и чтения, я перенесла: < /p>
document.addEventListener('contextmenu', e => e.preventDefault());

document.addEventListener('mouseup', function(e) {
const targetEl = e.target;
if (e.button === 0) {
console.log('lc', targetEl);
clickCell(targetEl);
} else if (e.button === 2) {
console.log('rc', targetEl);
rightClickCell(targetEl);
}
}, false);
< /code>
Это теперь, кажется, работает так, как я хочу; Обработка левого щелчка или трекпад 1-крапинговый щелчок для функции A и правого клика или трекпада 2-кратного клика для функции B ... < /p>
Учитывая проблемы, с которыми я уже столкнулся, я беспокоюсь, что это Это может не работать надежно в других средах, например, Mac имеет другую реализацию правой кнопки. Я некоторое время пытался исследовать это, но нашел запутанные / противоречивые объяснения, поэтому я хотел бы знать, как я должен реализовать этих слушателей событий для надежной работы в любой среде. < / P>

Подробнее здесь: https://stackoverflow.com/questions/794 ... or-right-b
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Javascript»