バックボーンとハンドルバーで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;});
私を助けてください。