Как работать с event.detail в Internet Explorer 11? - PullRequest
0 голосов
/ 29 апреля 2019

У меня есть функция, предотвращающая выбор элемента, под другим элементом щелчка. Fumction отлично работает в chrome, но в IE11 e.detail не работает. Что использовать вместо этого? Как реорганизовать код функции?

function xorClick(e) {

    if (pendingClick) {
        clearTimeout(pendingClick);
        pendingClick = 0;
    }

    switch (e.detail) {
        case 1:
            pendingClick = setTimeout(function() {
                var parent = e.target.closest('.ui-treenode-content');
                parent.click();                
            }, 180);
            break;
        case 2:
            var parent = e.target.closest('.ui-treenode-content');
            parent.firstChild.click();
            break;
        default:
            break; 
    }
    stopClick(e);

Я пытался использовать

    var nDelta = e.detail === 0 ? e.wheelDelta : e.delta;

Но это тоже не работает.

function stopClick(e) {
    if (e.preventDefault) {
        e.preventDefault();
    } else {
        e.returnValue = false;
    }

    e.stopPropagation();
}
                                    <span onclick="xorClick(event)">
                                        <div onclick="stopClick(event)">
                                            .....
                                        </div>
                                    </span>


1 Ответ

0 голосов
/ 29 апреля 2019

Как вы можете прочитать в IE11 документах :

Примечание. Начиная с Internet Explorer 11, это событие вызывает Объект MSPointerEvent вместо MouseEvent. Вы можете использовать MouseEvent.pointerType свойство для определения типа контакта, который щелчок произошел от (касание, мышь или ручка).

Из того, что я вижу в разнице между e.detail в IE11 и Firefox / Edge, я вижу, что IE11 возвращает 0, а остальные возвращают 1. Может быть, вам просто нужно добавить этот случай в своем выражении switch?

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