2012-08-10 3 views
9

Ich benutze das neue jqm Popup mit der Version 1.2.0 Alpha und mein Problem ist, dass meine Seite, von der ich das Popup aufrufen, nutzlos beim Schließen des Popup mit Esc aktualisiert wird Taste oder auf den Bildschirm klicken ... Diese Aktualisierung geschieht nur beim ersten Mal, wenn ich es schließe. Wenn ich wieder das Popup wieder zu öffnen und schließen ist die Seite nicht aktualisiert ...Schließen von jQuery Mobile neues Popup Ursache Seite nutzlos zu aktualisieren

Es scheint, dass JQM Geschichte mecanism aus irgendeinem Grund erhalten verkorkste ....

Es scheinen nicht eine eingebaute zu sein in feature, da dies für kein Popup auf der jqm-Demoseite passiert.

Irgendeine Idee, wie man dieses Problem löst?

Dank

Etienne

+0

Ich habe ähnliche Probleme erlebt, wenn die aktuelle URL nicht mit dem Navigationsstapel synchronisiert ist. Sie werden feststellen, dass das Ereignis _handleHashChange das Ereignis "navigate" auslöst ($ .mobile.pageContainer.trigger (navEvent);) und der erwartete Listener, der isDefaultPrevented auf true auswertet, wird nicht ausgelöst, da er nur einmal gebunden ist. Abhängig von meiner Zeit in dieser Woche kann ich eine Pull-Anfrage einreichen. Ich halte dich auf dem laufenden. – nullable

Antwort

3

Per meinem Kommentar, hier ist eine vorübergehende Lösung für das Problem. Einfach passend an das navigiere Ereignis binden und preventDefault aufrufen. Dies verhindert das erneute Laden der Seite. Ich landete auf den popupafterclose Bindung, nur wenn es geöffnet wurde:

$('.my-popup-selector').on('popupafteropen', function() { 
     $(this).one('popupafterclose', function() { 
      $(window).one('navigate.popup', function (e) { 
       e.preventDefault(); 
      }); 
     }); 
    }); 
+0

Ich beendete das Binden (live) Ihres Patches beim popupafteropen-Ereignis eines [data-role = "popup"] - Selektors und löste das Problem bei ALLEN meinen Anwendungspopups. Danke vielmals! –

22

Ich hatte ein ähnliches Problem und, wie ich die Geschichte nicht in meinem Fall zu verwenden brauchte, ich löste es global popup Geschichte wie diese zu deaktivieren:

$.mobile.popup.prototype.options.history = false; 
+0

Danke !!! Das hat mein Problem gelöst! Ich wusste nicht, dass das Popup den Verlauf behandelt hat. – Giorgio

+0

Vielen Dank ... –

+0

@Pablo Ich liebe dich! =) –

4

diesen Beitrag gefunden, während ein ähnliches Problem auf IE11 mit jQuery mobile 1.4.5

ich, dass ich verhindern gefunden haben könnte die „nachladen“, wenn, indem er erklärt das Popup mit der Daten-Geschichte das Popup schließen = "false" -Attribut in meinem HTML.

Ex:

...

+0

Danke. Das hat mein Problem gelöst, – MK446

0

Ich hatte ein ähnliches Problem und ich regelte es mit history: false mit:

$("#selector").popup({ transition: 'slidedown', history: false, overlay: true }); 
$("#selector").popup("open"); 
0

data-history="false" hinzufügen div Popup. Wenn das Popup geschlossen wird, wird es nicht auf eine andere Seite umgeleitet.

Verwandte Themen