gpt4 book ai didi

javascript - 如何在 iOS 上将所有 onClick 事件更改为 TouchStart?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:46:47 24 4
gpt4 key购买 nike

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com