jQuery Mobile 1.4 ป๊อปอัปที่ซ้อนกัน

เมื่อใช้ JQM 1.4 ฉันไม่สามารถเปิดป๊อปอัปใหม่จากป๊อปอัปอื่นได้อีกต่อไป

<a href="/th#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="/th#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>

สิ่งนี้ทำงานได้ดีในเวอร์ชัน 1.3 มีความคิดใดที่ฉันจะแก้ไขปัญหานี้ได้อย่างไร


person sam360    schedule 10.02.2014    source แหล่งที่มา


คำตอบ (1)


สิ่งนี้มาจากการเปลี่ยนแปลงวิธีจัดการลิงก์ที่คลิกภายในวิดเจ็ตป๊อปอัป ใน jQuery Mobile 1.3 ป๊อปอัปที่ใช้งานอยู่ในปัจจุบันถูกบังคับให้ปิดเพื่อให้สามารถเปิดป๊อปอัปใหม่ได้ นี่ไม่ใช่กรณีใน jQuery Mobile 1.4 อีกต่อไป

หากต้องการคืนค่าลักษณะการทำงานก่อนหน้านี้ คุณสามารถแก้ไข $.mobile.popup.handleLink() ในตัวจัดการ 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
ขอขอบคุณสำหรับการตอบกลับอย่างรวดเร็ว ฉันจะลองดู แต่ฉันคิดว่าทีม JQM จำเป็นต้องแน่ใจว่าพวกเขาจะไม่ทำให้สิ่งต่าง ๆ เสียหายในการอัพเกรด การอัปเกรดแอปพลิเคชันนับพันที่สร้างจากเวอร์ชันก่อนๆ เป็นเรื่องที่ท้าทายมาก - person sam360; 10.02.2014