使用JQM 1.4,我再也无法从另一个弹出窗口打开一个新的弹出窗口。
<a href="#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="#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版本中运行良好。 知道如何解决这个问题吗?
答案 0 :(得分:1)
这来自于处理弹出窗口小部件内部链接的方式的变化。在jQuery Mobile 1.3中,当前活动的弹出窗口被强制关闭,因此可以打开新的弹出窗口。在jQuery Mobile 1.4中不再是这种情况。
要恢复以前的行为,您可以在mobileinit处理程序中修补$.mobile.popup.handleLink()
:
$(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);
};
});