mootools点击:继电器没有在ipad / iphone上开火

时间:2012-08-31 10:57:19

标签: javascript mootools

我只是使用mootools创建一个click事件,如下所示:

$$('body').addEvent('click:relay(div.smart-bg)', function(){

xxxxxxxxxxx

});

然而,这似乎并没有在iPad上发射(而其他点击事件则会触发)。这是否与它添加的动态元素这一事实有关:我正在使用:relay?

任何指针都非常感激。

广告。

1 个答案:

答案 0 :(得分:2)

当我在div上添加委派的点击事件时,我遇到了类似的问题。

This article from quirksmode可能会有所帮助:

  

这种行为必须有原因。我不知道是什么原因,但目前我认为这是一个内存管理问题。显然,使页面上的所有元素都可点击需要太多资源,Apple工程师决定禁用它。

和...

  

幸运的是,它很容易解决:你必须通过给它自己的onclick事件处理程序来使元素可点击。该处理程序可以为空;只要它存在,它将使任何元素可点击。

也许在你的情况下...

$$('.smart-bg').each(function(el) {
    el.onclick = function() {};
});

虽然当然,鉴于它是一个委托事件,您必须确保在动态创建的每个.smart-bg元素上重新创建onclick处理程序。