Приостановить событие по нажатию или касанию, а затем перезапустить событие состояния после выполнения некоторой работы в jQuery? - PullRequest
0 голосов
/ 10 октября 2019

В поисках конкретного способа отслеживания кликов - если есть лучший способ сделать это, но мне бы очень хотелось узнать, как просто отложить все то же распространение событий, которое происходит обычно, до завершения какой-либо функции - мысли?

$(this).on('click touch', function(event){
     event.preventDefault();
     l("clicked ");

     setTimeout(function(){
         l('redispatching event');
         event.target.parentNode.dispatchEvent(event); // fails here?
     }, 500);

     return false;
});

Правка была для более конкретного примера.

1 Ответ

1 голос
/ 10 октября 2019

Используйте event.preventDefault() как обычно, затем, когда вы хотите всплыть, отправьте то же событие непосредственно на родительский элемент.

$('a, button').on('click touch', function(event){
        event.preventDefault();
        event.cancelBubble = true;
        doSomething(); // Probably asynchronous
        event.cancelBubble = false;
        event.target.parentNode.dispatchEvent(event);
        return false;
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...