所以请查看 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/