2

理由はわかりませんが、スクリプトを別のシーケンスに含めると問題が発生するようです。

こんなとき:

    <script src="static/jquery.mobile-1.3.1.min.js"></script>
    <script src="static/jquery-1.9.1.min.js"></script>
    <script src="static/jquery-migrate-1.1.1.min.js"></script>

私のプログラムは動作します!Fiddle も動作します: http://jsfiddle.net/yvonnezoe/MKfLU/4/ しかし、jQuery モバイルの CSS テーマは Web アプリでは動作しません。

こんなとき:

    <script src="static/jquery-1.9.1.min.js"></script>
    <script src="static/jquery-migrate-1.1.1.min.js"></script>
    <script src="static/jquery.mobile-1.3.1.min.js"></script>

Fiddleでも機能せず、変数「textInput」に対して「未定義」になりました:http://jsfiddle.net/yvonnezoe/7NZzr/

誰かが理由を教えてもらえますか? :(

4

2 に答える 2

4

この問題を理解するには、jQuery Mobile がどのように機能するかを理解する必要があります。

2番目の例では、初期化順序は問題になりません。それが問題である場合、それらの要素はすべてスタイル付けされません。あなたの場合、あなたが知らないのは、jQuery Mobile スタイルが要素を形成すると、DOM 構造が変更されるということです。そのため、スタイルのない最初の例のように、ボタンと入力要素は同じ場所にありません。

これは jsFiddle の修正です: http://jsfiddle.net/FmPPW/

これを変える:

$('.TextInput').empty();
textInput = $(this).prev('.TextInput').val();

これに:

$('.TextInput').empty();
textInput = $(this).parent().prev().find('.TextInput').val();
于 2013-04-24T07:35:04.547 に答える
1

「Configuring Defaults」のドキュメントでは、mobileinit イベントについて説明しています: http://jquerymobile.com/demos/1.0a4.1/docs/api/globalconfig.html

mobileinit イベントは実行直後にトリガーされるため、jQuery Mobile が読み込まれる前にイベント ハンドラーをバインドする必要があります。したがって、次の順序で JavaScript ファイルにリンクすることをお勧めします。

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

クイックスタート ガイドには、同じ順序のページ テンプレートが示されています: http://jquerymobile.com/demos/1.2.1/docs/about/getting-started.html

jquery-mobile が機能するには、jquery をロードする必要があるようです。

于 2013-04-24T03:03:44.427 に答える