作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
OnClick 事件在 iOS 浏览器上执行之前有约 400 毫秒的超时时间 (demo)。我想将它更改为所有具有 onClick 的 DOM 元素的 TouchStart 事件。我怎样才能做到?
我使用 jQuery 并尝试检查所有元素的点击功能:
$('*').each(function() {
if($(this).click != null) {
// BUT all elements in DOM has click
}
})
最佳答案
我没有确切的答案,但我认为你应该能够让它做你想做的事。
对于页面上每个具有 OnClick 的元素,添加一个类 - 例如 TouchTarget。然后在您的启动函数中使用它。
$('.TouchTarget').bind('touchstart', function (e) {
e.preventDefault();
touchStart(e, this);
});
创建一个如下所示的处理函数:
function touchStart(pEvent, pElement) {
//Do something with the touch.
}
如果你只想在触摸可用时注册,那么你可以保护绑定(bind)调用
if (Modernizr.touch) {
}
我相信 OnClick 延迟的原因是因为 Safari 正在等待查看触摸是否真的是点击、拖动或其他一些手势。这将快速识别简单的触摸。当我需要快速触摸时,我通常会同时绑定(bind) touchstart 和 touchend,以便 touchstart 提供视觉反馈,然后 touchend 通过“点击”执行某些操作。此方法没有内置延迟。
关于javascript - 如何在 iOS 上将所有 onClick 事件更改为 TouchStart?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6520620/
我是一名优秀的程序员,十分优秀!