javascript - 移动 safari 5 在进一步行动之前不响应 js 事件

标签 javascript mobile-safari

所以请查看 http://www.toyota.ca/toyota/en/vehicles/yaris-hatchback/gallery使用 ios 5/mobile safari 5 或模拟器按下底部滚动条上的图像,然后弹出一个灯箱。尝试按下一步按钮,您发现没有任何反应。现在,如果您放大/缩小或改变方向或滚动页面,图像将会改变。

js 之所以有效,是因为下一个/上一个将在您按下它们时启用/禁用,但在进一步操作之前它不会执行动画部分。为什么是这样?这常见吗?如果您在 iOS 4 上尝试相同的页面,它会正常工作。

最佳答案

不要使用 click() 处理程序,使用 mousedown() 处理程序。

移动设备很难区分 click()mousedown()

必要的更改是 common.js 中的第 472 行,更改

var o=p(f,c.prev).click(function(){b.prev()}),q=p(f,c.next).click(function(){b .next()});

var o=p(f,c.prev).mousedown(function(){b.prev()}),q=p(f,c.next).mousedown(function(){b .next()});

要么,要么,对于每个这样的导航按钮,在创建时,使用:

 $(selector).bind('mousedown',$(selector).data("events").click[0].handler)
 $(selector).unbind('click',$(selector).data("events").click[0])

selector 是特定元素的 jQuery 选择器。

或者您可以只使用 $(class).off 一劳永逸地清除处理程序。

关于javascript - 移动 safari 5 在进一步行动之前不响应 js 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9606182/

相关文章:

javascript - 是否可以创建一个非居中的 Javascript 警告框?

iPhone <button> 填充不变?

ios - iOS "WebRTC>Allow Media Capture on Insecure Sites"?

javascript - 干掉工程符号实现

javascript - 使用javascript更改输入[复选框或单选按钮]时如何获取(或触发)更改事件

javascript - react : Traversing nested Objects in state to prevent duplicates – most performant way?

某些帖子/页面上的 CSS 不显示在移动设备上

javascript - 查找元素手指在触摸事件期间处于打开状态

safari - 如何从 safari 调试 iPhone X 模拟器?

javascript - 如何创建 AJAX 半同步行为