2

バックボーンとハンドルバーでJqueryモバイルを使用しました。cakephpからのJSONデータを使用して国のリストをロードする選択ボックスがあり、HTMLコードは次のとおりです。

<select name="Country" id="Country"  data-native-menu="false">
    <option value="all">All Countries</option>
    {{#each output.countries}}
    <option value="{{Country.id}}" >{{Country.name}}</option>
    {{/each}}
</select>

しかし問題は、リストが大きすぎることです。したがって、ブラウザ ウィンドウのサイズが小さい場合、jquery mobile は次のように新しいページを開こうとします: jqm docs

しかし、私の場合、ページを開いていません。コードをデバッグしましたが、3414 行目の jquery mobile.js version is 1.1.1 にエラーが表示されます

if ( active.url.indexOf( dialogHashKey ) > -1 && !$.mobile.activePage.is( ".ui-dialog" ) ) {
            settings.changeHash = false;
            alreadyThere = true;
        }

この特定のコード行は、次のようなエラーを返します: Uncaught TypeError: Cannot call method 'indexOf' of undefined

ここで、urlHistory.getActive() の値が未定義であるため、active.url が未定義であることを知りました。代わりに、現在の URL を含める必要があります。なぜ未定義なのかわかりません。ルーティングの問題はありますか?jqm config で次の設定を行いました。

$(document).bind("mobileinit", function () { $.mobile.ajaxEnabled = false; $.mobile.linkBindingEnabled = false; $.mobile.hashListeningEnabled = false; $.mobile.pushStateEnabled = false;});

私を助けてください。

4

0 に答える 0