有谁知道为什么在 touchstart 事件期间会触发 touchend 事件?这只会发生第二次。
一个快速的代码片段:
function touchstart (event) {
$(event.target).one('touchend', function () {
alert('fired');
}
}
所以第一次被解雇它工作正常。第二次它在 touchstart 上触发警报。
编辑:
看起来这可能只是一个 iPhone 问题
有谁知道为什么在 touchstart 事件期间会触发 touchend 事件?这只会发生第二次。
一个快速的代码片段:
function touchstart (event) {
$(event.target).one('touchend', function () {
alert('fired');
}
}
所以第一次被解雇它工作正常。第二次它在 touchstart 上触发警报。
编辑:
看起来这可能只是一个 iPhone 问题
结果...通过在 touchend 事件中触发警报会导致各种问题。当您单击“确定”时,它会触发 touchstart,以便在您下次触摸元素时触发 touchend。幸运的是,我使用警报来检查我的代码 - 所以一旦删除,我的代码就可以完美运行!
只需将“touchend”处理程序的代码放在 setTimeout 中,时间为 0ms。像这样:
$(someElement).on("touchend",
function(){
setTimeout(function(){
/*Your code*/
}, 0);
});