Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery mobile jQuery mobile从弹出窗口打开弹出窗口_Jquery Mobile_Cordova_Popup - Fatal编程技术网

Jquery mobile jQuery mobile从弹出窗口打开弹出窗口

Jquery 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

我正在PhoneGap上使用jQuery mobile
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")