Jquery mobile jQuery mobile从弹出窗口打开弹出窗口
我正在PhoneGap上使用jQuery mobileJquery mobile jQuery mobile从弹出窗口打开弹出窗口,jquery-mobile,cordova,popup,Jquery Mobile,Cordova,Popup,我正在PhoneGap上使用jQuery mobile1.9.1分钟。 我有一个列表,其中每次单击iten都会打开一个操作弹出窗口: 函数显示操作(索引){ selectedIndex=索引; $(“#actionPopup”).popup(“打开”,{positionTo:'#list li:n子项('+index+')')}); } 操作 操作1 操作2 操作3 操作4 当我用showDetails()按action1时,会调用它们方法,但不会显示第二个弹出窗口 函数showDet
1.9.1分钟
。我有一个列表,其中每次单击iten都会打开一个操作弹出窗口:
函数显示操作(索引){
selectedIndex=索引;
$(“#actionPopup”).popup(“打开”,{positionTo:'#list li:n子项('+index+')')});
}
- 操作
操作1
操作2
- 操作3
操作4
当我用showDetails()
按action1时,会调用它们方法,但不会显示第二个弹出窗口
函数showDetails(){
控制台日志(“显示详细信息”);
$(“#infoPopup”)。弹出(“打开”);
}
测试1:
测试2:
我能做什么呢?链接弹出窗口似乎不是 解决方案:
$( document ).on( "pageinit", function() {
$( '.popupParent' ).on({
popupafterclose: function() {
setTimeout( function(){ $( '.popupChild' ).popup( 'open' ) }, 100 );
}
});
});
我的解决方案
$.mobile.switchPopup = function(sourceElement, destinationElement, onswitched) {
var afterClose = function() {
destinationElement.popup("open");
sourceElement.off("popupafterclose", afterClose);
if (onswitched && typeof onswitched === "function"){
onswitched();
}
};
sourceElement.on("popupafterclose", afterClose);
sourceElement.popup("close");
};
我用这个代码从弹出窗口切换到弹出窗口,效果很好
function switchpop()
{
$( '#popupMenu' ).popup( 'close' );
$( "#popupMenu" ).bind({popupafterclose: function(event, ui)
{
$( "#notes" ).popup( "open" );
}
});
}
我使用这个简单的函数来解决这个问题:
function myPopup(myPage) {
history.back();
setTimeout(function () {
$(myPage).popup('open');
}, 100);
}
经过四个小时的战斗,我将问题归结为: 这是在第一个弹出窗口上的按钮单击功能中
$('#popupCall').popup('close');
window.setTimeout(function () { $('#popupContact').popup('open') }, 50);
@拉库有一个很好的答案。以下是一个更精简的版本:
$.mobile.switchPopup = function(sourceElement, destinationElement, onswitched) {
sourceElement.one("popupafterclose", function() {
destinationElement.popup("open")
!onswitched || typeof onswitched !== "function" || onswitched()
}).popup("close")
};
如果您不需要onswitched功能,也不想将其添加到$.mobile中,那么它可以是这么简单:
$('#popup1').one("popupafterclose", function(){$('#popup2').popup("open")}).popup("close")