5

モバイルではボタンが遅くなります (ほとんどのブラウザーでは、特にドラッグの検出により、少なくとも 300 ミリ秒の遅延が発生します)。Google はこれを修正するためにいくつかの JavaScript を書きました: http://code.google.com/mobile/articles/fast_buttons.html

モバイル HTML5 ボイラープレートの人々は、これをパッケージに統合しました: https://github.com/h5bp/mobile-boilerplate/blob/master/js/mylibs/helper.js#L86

これをバックボーンで簡単に使用する方法を理解したいと思います。何かのようなもの:

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

fastbutton は、クリックまたはマウスダウンを高速ボタン コードに置き換えます。MPB.fastbutton コードを少し書き直す必要があると思います。誰もこれをやったことがありますか?

4

2 に答える 2

8

どこにでも「fastbuttons」を作成する代わりに、FastClick のようなライブラリを使用し、タッチされた要素のタッチをクリック イベントに透過的に変換し、その 300 ミリ秒の遅延を取り除く方がおそらく賢明です。

それはとても簡単でnew FastClick(document.body)、あなたは行く準備ができています。

このアプローチの利点は、モバイル デバイスでタッチ イベントの動作が変更され、クリック イベントが登録されている要素に遅延が発生しない場合、すべてのコードを変更するのではなく、1 行のコードを変更してライブラリをドロップするだけでよいことです。 「fastbuttons」を通常のボタンに変換します。メンテナンス性は常に良好です。

于 2012-02-20T15:55:22.910 に答える
1

私はかなり確信しています、これはあなたが望むようには機能しません。「fastclick」などの追加のイベントを用意する代わりに、要素を fastButton として定義する必要があります。実際には、次のような要素とコードを渡す fastbutton のインスタンスを作成する必要があります。

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

バックボーンの場合、events オブジェクトの代わりに initialize() 関数でこれを簡単に行うことができます。

// 申し訳ありませんが、本当にこれを探しているわけではないことを読んでください :)

于 2011-12-13T17:46:02.343 に答える