【问题标题】:How to make jQuery Mobile not manipulate the hash when displaying a dialog如何让 jQuery Mobile 在显示对话框时不操纵哈希
【发布时间】:2012-03-27 15:52:17
【问题描述】:

我有一个 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 参数?还有其他人遇到这个吗?

【问题讨论】:

  • 你找到答案了吗?

标签: jquery-mobile backbone.js


【解决方案1】:

我知道这是一个相当古老的线程 - 但问题如下:

作者:$.mobile.hashListeningEnabled = false; 您正在禁用 jqm 路由功能,因此 jqm 不会侦听哈希更改,但骨干路由器会侦听。您需要做的是在相应的主干视图中定义一个事件,在该视图中打开对话框 - 类似于:

var YourView = Backbone.View.extend({

[...]

events: {
   "click #myDialog: "openMyDialog"
},

openMyDialog:function() {
   [Call your Dialog/Popup here]
}


})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 2015-04-07
    • 1970-01-01
    • 1970-01-01
    • 2012-08-27
    • 1970-01-01
    相关资源
    最近更新 更多