我已经使用带有 Backbone 和 Handlebar 的 Jquery mobile 我有一个选择框,它使用来自 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
但就我而言,它没有打开页面。我调试了代码,但它给了我 jquery mobile.js version is 1.1.1 in that on line 3414 中的错误
if ( active.url.indexOf( dialogHashKey ) > -1 && !$.mobile.activePage.is( ".ui-dialog" ) ) {
settings.changeHash = false;
alreadyThere = true;
}
这行特定的代码给出了错误:Uncaught TypeError: Cannot call method 'indexOf' of undefined
在这里,我知道 active.url 未定义,因为 urlHistory.getActive() 具有未定义的值,而是应该包含当前 URL。我不知道为什么它是未定义的。有路由问题吗?我在 jqm config 中做了以下设置:
$(document).bind("mobileinit", function () {
$.mobile.ajaxEnabled = false;
$.mobile.linkBindingEnabled = false;
$.mobile.hashListeningEnabled = false;
$.mobile.pushStateEnabled = false;});
请帮帮我。