如何在iOS上将所有onClick事件更改为TouchStart
How to change all onClick events to TouchStart on iOS?
OnClick事件在iOS浏览器上执行之前有一个约400ms的超时(演示(。对于所有具有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.
}
如果你只想在触摸可用的情况下注册,那么你可以用保护绑定呼叫
if (Modernizr.touch) {
}
我相信OnClick延迟的原因是Safari正在等待触摸是否真的是点击、拖动或其他手势。这将快速识别简单的触摸。当我需要快速触摸时,我通常会绑定touchstart和touchend,以便touchstart提供视觉反馈,然后touchend通过"点击"做一些事情。此方法没有内置延迟。
使用类似http://www.jqtouch.com/或此处提供的代码:http://cubiq.org/remove-onclick-delay-on-webkit-for-iphone.
相关文章:
- 如何在执行此特定onclick事件时执行JavaScript函数
- 如何调用“;链接_;在onclick事件上使用Javascript
- 如何使用jquery迭代具有相同属性的html元素并查找onclick事件
- 选择onclick事件jquery
- 如何刷新列表框内容onclick或blur事件
- 执行php函数的onclick事件的其他替代方案
- 动态创建OnClick事件Javascript
- onClick事件未触发reactjs
- 使用java脚本更改onClick事件中菜单选项卡的颜色
- 如何使用OnClick事件通过参数调用来调用PHP函数
- 第二个事件[onClick]不起作用
- 复选框事件onclick不起作用
- 如何在jQuery中为通知添加事件onClick
- JS函数不响应事件onclick
- 使用事件onclick访问if语句Javascript中变量的值
- 如何在事件onclick中抓取文本
- 如何绑定id < light >与事件Onclick
- 未找到JS事件OnClick
- 如何在js/prototype中触发具有特定顺序的事件(onclick)
- 无法触发javascript事件OnClick的复选框