У меня был скрипт, который возвращал элемент, щелкенный или щелкнул правой кнопкой мыши, оригинально я сделал это, используя следующее: < /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
Как правильно обрабатывать поперечную платформу EventListener для отдельных событий левой или правой кнопки ⇐ Javascript
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
JQuery: сортируйте 4 очка (в верхней левой, правой верхней, правой нижней, левой нижней))
Anonymous » » в форуме Jquery - 0 Ответы
- 8 Просмотры
-
Последнее сообщение Anonymous
-