移动safari 5直到进一步acton没有响应js事件

时间:2012-03-07 17:18:28

标签: javascript mobile-safari

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

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

1 个答案:

答案 0 :(得分:1)

请勿使用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一劳永逸地清除处理程序。