我有一个jQuery Mobile +骨干网站。为了与主干一起玩,我也禁用了这样的路由:
$(document).bind("mobileinit", function () {
$.mobile.ajaxEnabled = false;
$.mobile.linkBindingEnabled = false;
$.mobile.hashListeningEnabled = false;
$.mobile.pushStateEnabled = false; });
我想在我的jQM +骨干网站上通过js显示一个对话框:
$.mobile.changePage("#dialog",
{
transition: 'pop',
role: 'dialog',
changeHash:false
});
问题是,这会触发哈希更改事件。我的页面路由器选择了这个并路由到一个不正确的页面,远离对话框。
为什么带对话框的简单changePage会忽略changeHash参数?还有其他人遇到过这个吗?
答案 0 :(得分:0)
我知道这是一个很老的线程 - 但问题如下:
通过:$.mobile.hashListeningEnabled = false;
您正在禁用jqm路由工具,因此jqm不会监听哈希更改,但骨干路由器会这样做。您需要做的是在相应的主干视图中定义一个事件,其中对话框应该打开 - 如下所示:
var YourView = Backbone.View.extend({
[...]
events: {
"click #myDialog: "openMyDialog"
},
openMyDialog:function() {
[Call your Dialog/Popup here]
}
})