5

移动设备上的按钮速度很慢(由于拖动检测等原因,大多数浏览器至少延迟 300 毫秒)。谷歌写了一些 javascript 来解决这个问题: http ://code.google.com/mobile/articles/fast_buttons.html

Mobile HTML5 Boilerplate 人将其集成到他们的包中: https ://github.com/h5bp/mobile-boilerplate/blob/master/js/mylibs/helper.js#L86

我想弄清楚如何轻松地将它与骨干一起使用。就像是:

events: {
  "fastbutton button.save": "save"
}

fastbutton 将 click 或 mousedown 替换为快速按钮代码。我希望我需要稍微重写 MPB.fastbutton 代码。有人做过吗?

4

2 回答 2

8

与其到处创建“快速按钮”,不如使用像FastClick这样的库可能更明智,它可以透明地将触摸转换为被触摸元素上的点击事件,并消除 300 毫秒的延迟。

这很容易new FastClick(document.body),你准备好了。

这种方法的优点是,如果或当触摸事件的行为在移动设备上发生变化以便注册点击事件的元素没有延迟时,您只需更改一行代码即可删除库,而不是更改所有代码将“快速按钮”转换为常规按钮。可维护性总是好的。

于 2012-02-20T15:55:22.910 回答
1

我很确定,这不会像你想要的那样工作。而不是有一个额外的事件,比如说“fastclick”,你必须将一个元素定义为一个快速按钮。实际上,您必须创建一个 fastbutton 实例,在该实例上传递元素和代码,如下所示:

new MBP.fastButton($("button.save"), function() { this.save(); }.bind(this));

在主干的情况下,您可以在 initialize() 函数而不是事件对象中轻松执行此操作。

// 对不起,刚刚读到你并不是真的在寻找这个 :)

于 2011-12-13T17:46:02.343 回答