javascript - 在单击或触摸时暂停事件,然后在 jQuery 中完成一些工作后 "restart"状态事件?

标签 javascript jquery

希望实现一种专门跟踪点击的方法 - 如果有更好的方法来做到这一点,但我真的很想知道如何简单地延迟正常发生的所有相同事件传播,直到某些功能完成 - 想法?

$(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;
});

编辑是为了更具体的示例。

最佳答案

像平常一样使用 event.preventDefault() ,然后当您想要冒泡时,将相同的事件直接分派(dispatch)到元素的父元素。

$('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;
})

关于javascript - 在单击或触摸时暂停事件,然后在 jQuery 中完成一些工作后 "restart"状态事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58330808/

相关文章:

javascript - 我希望从 Angular 资源加载数据子集

javascript - 使用数组解析或查询

javascript - ajax,在ajax成功时缩短每个div的高度

javascript - 使用 jQuery 打开图像以在新窗口中打印

javascript - AJAX更新微帖子上/下投票部分仅刷新最新帖子

javascript - Jquery 操作 url

jQuery 未按正确顺序执行?

javascript - 表单元素容器高度

jquery - 在ajax请求中返回zend paginator对象,获取错误的url

php - 在php javascript中查找没有onload函数的动态文本框值的计数字符