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()
,然后当您想要冒泡时,将相同的事件直接发送到元素的父级。
$('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;
})
推荐阅读
- visual-studio-2012 - 使用包管理器在 .NET 2.0 项目上安装 Saxon 9.5 时出错
- python - 如何使用openCV python将图像的蒙版部分替换为另一个图像?
- javascript - 获取 Woocommerce 订单总额并将其传递到 Salesforce 转换脚本
- python - 如何使用函数解决这个 Python 问题?
- android - 是否可以在 LinearLayout 中相对于彼此对齐项目?
- arrays - 获取数组JS数组上的特定元素,没有与id等效的索引(反应)
- python - 为什么 Django 显示 KeyError?
- pipe - 结合 Enum.map 和 Enum.each
- c++ - findContours 和 RETR_TREE 遍历层次结构
- python - conda build 和 conda install 使用相同依赖项的不同版本,为什么?