0

私は jQuery Mobile を使用していますが、Ajax 処理を無効にしたいと考えています。私はから始めました

<script src="jquery..."></script>
<script src="jquerymobile..."></script>
Some other stuff...
My own code:
<script src="config.js"></script>
My other javascript files...

私の考えは、ライブラリのようなグローバルなものを上部に定義し、詳細を下部に定義して、後でレンダリングし、グローバル プロパティを「上書き」するというものでした。たとえば、私自身の CSS は jQuery の CSS をオーバーライドし、私のconfigファイルは次のようになります。

$.mobile.ajaxEnabled = false;

ajax処理を正常に無効にしました。

ただし、http://jquerymobile.com/demos/1.1.0/docs/api/globalconfig.htmlでは、 jQuery モバイルを使用する前に設定ファイルのデフォルトを上書きするように指示されてsrcいます。

<script src="jquery.js"></script>
<script src="custom-scripting.js"></script>
<script src="jquery-mobile.js"></script>

//custom-scripting.js
$(document).bind("mobileinit", function(){
  $.extend(  $.mobile , {
    foo: bar
  });
});

$.mobile.ajaxEnabled = false;私の質問は、設定ファイルの後にワンライナーを単純に含めることができるのに、なぜそうするのjquery-mobile.jsですか? 私はそれが Javascript のパラダイム/スタイルと何か関係があると思いますが、なぜそんなに面倒なことをしなければならないのか本当にわかりません.

では、どちらを使用するのが適切で、その理由は何ですか? ドキュメントでこの方法が推奨されているのはなぜですか?

編集:また、ドキュメントにはmobileinitis called immediately$.mobile objectと書かれているので、構成ファイルで後で安全に変更できるはずですよね?

4

1 に答える 1

1

理由がわかったと思います。jQuery モバイルは、$.mobile最初に既に設定されているかどうかを気にせずに、自身を初期化し、変数を定義 (= 上書き) します。mobileinitこれは、変更を許可するフックについて説明しています。

于 2012-07-02T22:52:24.497 に答える