Как заставить jQuery Mobile не манипулировать хешем при отображении диалога - PullRequest
1 голос
/ 27 марта 2012

У меня есть jQuery Mobile + магистральный сайт. Чтобы играть хорошо с магистралью, я также отключил маршрутизацию так:

$(document).bind("mobileinit", function () {
$.mobile.ajaxEnabled = false;
$.mobile.linkBindingEnabled = false;
$.mobile.hashListeningEnabled = false;
$.mobile.pushStateEnabled = false;     });

Я бы хотел отобразить диалог через js на своем магистральном сайте jQM +:

 $.mobile.changePage("#dialog",
        {
            transition: 'pop',
            role: 'dialog', 
            changeHash:false
        }); 

Проблема в том, что это вызывает событие изменения хеша. Мой страничный маршрутизатор подхватывает это и направляет на неверную страницу, вне диалога.

Почему простая changePage с диалоговым окном игнорирует параметр changeHash? Кто-нибудь еще сталкивался с этим?

1 Ответ

0 голосов
/ 28 февраля 2014

Я знаю, что это довольно старая тема, но проблема в следующем:

By: $.mobile.hashListeningEnabled = false; вы отключаете функцию маршрутизации jqm, и поэтому jqm не прослушивает изменения хеш-функции, а магистральный маршрутизатор. Что вам нужно сделать, это определить событие в вашем соответствующем базовом представлении, где должен быть открыт диалог - это будет что-то вроде:

var YourView = Backbone.View.extend({

[...]

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

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


})
...