我已经使用Jquery mobile与Backbone和Handlebar我有一个选择框,使用来自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版本中的错误,在第3414行中是1.1.1
if ( active.url.indexOf( dialogHashKey ) > -1 && !$.mobile.activePage.is( ".ui-dialog" ) ) {
settings.changeHash = false;
alreadyThere = true;
}
这段特殊代码给出了错误:Uncaught TypeError:无法调用未定义的方法'indexOf'
在这里,我发现active.url未定义为urlHistory.getActive()具有未定义的值,而应包含当前URL。我不知道为什么它是未定义的。有路由问题吗?我在jqm config中进行了以下设置:
$(document).bind("mobileinit", function () {
$.mobile.ajaxEnabled = false;
$.mobile.linkBindingEnabled = false;
$.mobile.hashListeningEnabled = false;
$.mobile.pushStateEnabled = false;});
请帮帮我。