如何将Google的/ MBP FastButton代码与骨干事件一起使用

时间:2011-12-12 17:36:42

标签: javascript backbone.js html5boilerplate

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

移动HTML5 Boilerplate人员将其整合到他们的包中: https://github.com/h5bp/mobile-boilerplate/blob/master/js/mylibs/helper.js#L86

我想知道如何轻松地将其用于骨干网。类似的东西:

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

快速按钮用快速按钮代码替换click或mousedown。我希望我需要重写一下MPB.fastbutton代码。有人这样做过吗?

2 个答案:

答案 0 :(得分:8)

不是在任何地方创建“快速按钮”,而是使用像FastClick这样的库,这样可以透明地将触摸转换为触摸元素上的点击事件,并消除300毫秒的延迟。

就像new FastClick(document.body)一样简单,你准备好了。

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

答案 1 :(得分:1)

我很确定,这不会按你喜欢的方式运作。而不是像“fastclick”那样有一个额外的事件,你必须将一个元素定义为一个fastButton。实际上你必须创建一个fastbutton实例,你可以在其上传递元素和代码:

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

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

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