jQuery Mobile 1.4 Popup Bersarang

Dengan menggunakan JQM 1.4, saya tidak lagi dapat membuka popup baru dari popup lain.

<a href="/id#popupBasic" data-rel="popup" 
 class="ui-btn ui-corner-all ui-shadow ui-btn-inline" 
data-transition="pop">Basic Popup</a>

<div data-role="popup" id="popupBasic">
   <p>This is a completely basic popup, no options set.</p>
   <a href="/id#popupBasicAnother" data-rel="popup" class="ui-btn ui-corner-all ui-shadow ui-btn-inline" data-transition="pop">Another Popup</a> 
</div>

<div data-role="popup" id="popupBasicAnother">
  <p>Another Popup</p>
</div>

Ini berfungsi dengan baik di versi 1.3. Adakah yang tahu bagaimana saya bisa memperbaikinya?


person sam360    schedule 10.02.2014    source sumber


Jawaban (1)


Ini berasal dari perubahan cara penanganan tautan yang diklik di dalam widget popup. Di jQuery Mobile 1.3, popup yang sedang aktif ditutup paksa sehingga yang baru dapat dibuka. Ini tidak lagi terjadi di jQuery Mobile 1.4.

Untuk memulihkan perilaku sebelumnya, Anda dapat melakukan patch $.mobile.popup.handleLink() di handler mobileinit:

$(document).on("mobileinit", function() {
    var originalHandleLink = $.mobile.popup.handleLink;
    $.mobile.popup.handleLink = function(link) {
        var activePopup = $.mobile.popup.active,
            path = $.mobile.path;
        if (activePopup) {
            var popup = $(path.hashToSelector(
                path.parseUrl(link.attr("href")).hash)).first();
            if (popup.length > 0 && popup.data("mobile-popup")) {
                activePopup._close(true);
            }
        }
        originalHandleLink.apply(this, arguments);
    };
});
person Frédéric Hamidi    schedule 10.02.2014
comment
Terima kasih atas tanggapan cepat Anda, saya akan mencobanya, tetapi menurut saya tim JQM perlu memastikan mereka tidak merusak apa pun saat peningkatan. Hal ini menjadikannya sangat menantang untuk mengupgrade ribuan aplikasi yang dibangun oleh versi sebelumnya. - person sam360; 10.02.2014