Есть ли способ определить, является ли «mousedown» нажатием правой кнопки мыши (удерживайте палец около 1 секунды на месте) или просто обычным щелчком правой кнопки мыши?js mousedown с прикосновением
Я думаю, что хром может сделать это с помощью «ev.originalEvent.sourceCapabilities.firesTouchEvents». Но только хром.
$('#container').mousedown(function(ev) {
if (ev.button === 2 && ev.comesFromTouch) return false
//...
}
редактировать: текущая ситуация: примерно через один второй после того как я нажал вниз левую кнопку мыши, браузер автоматически запускает «MouseDown» событие с помощью кнопки = 2 (проверено в режиме «устройство на панели инструментов» в хроме). Я хочу отменить это.
РЕШЕНИЕ Если право MouseDown появляется между touchstart и touchend это правой кнопкой мыши на сенсорном экране.
он работает примерно так.
function onPcRight() { console.log(1);}
function onTouchRight() { console.log(2);}
$('#container').mousedown(function(ev) {
if (ev.button === BUTTON_RIGHT) {
if ($(this).prop('touchdown')) onTouchRight();
else onPcRight();
}
})
.on('touchstart', function() {
$(this).prop('touchdown', true);
})
.on('touchend', function() {
$(this).prop('touchdown', false);
});
Спасибо за ваши усилия:), но я имел в виду что-то еще. Текущая ситуация: примерно через одну секунду браузер автоматически запускает событие «mousedown» с кнопкой = 2 (проверено в режиме «панель инструментов» в хромированном режиме). Я хочу отменить это. –