2013-08-25 10 views
6

मैं फोनगैप पर jQuery मोबाइल 1.9.1 min का उपयोग कर रहा हूं।
मैं एक सूची जहां क्लिक पर प्रत्येक iten खोलता है एक कार्रवाई पॉपअप है:पॉपअप से jQuery मोबाइल ओपन पॉपअप

function showActions(index){ 
    selectedIndex = index; 
    $("#actionPopup").popup("open", {positionTo: '#list li:nth-child('+ index +')'}); 
} 
<div data-role="popup" id="actionPopup" data-overlay-theme="a"> 
    <a href="#" data-rel="back" data-role="button" data-theme="a" data-icon="delete" data-iconpos="notext" class="ui-btn-right">Close</a> 
     <ul data-role="listview"> 
       <li data-role="divider">Actions</li> 
       <li data-icon="false" onclick="showDetails();">action1</li> 
       <li data-icon="false">action2</li> 
       <li data-icon="false">action3</li> 
       <li data-icon="false">action4</li> 
      </ul> 
     </div> 

जब मैं उन्हें विधि कहा जाता है showDetails() साथ action1 पर प्रेस लेकिन दूसरे पॉपअप नहीं दिखाया गया है।

function showDetails(){ 
    console.log("showDetails"); 
    $("#infoPopup").popup("open"); 
} 
<div data-role="popup" id="infoPopup"> 
      <a href="#" data-rel="back" data-role="button" data-theme="a" data-icon="delete" data-iconpos="notext" class="ui-btn-right">Close</a> 
      <div id="infoContent"> 
       <table> 
        <tr id="eventcode"> 
         <td>test1:</td> 
         <td>&nbsp;</td> 
        </tr> 
        <tr id="eventtype"> 
         <td>test2:</td> 
         <td>&nbsp;</td> 
        </tr> 
       </table> 
      </div> 
     </div> 

मैं क्या कर सकता है?

उत्तर

10

मेरे समाधान

$.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"); 
}; 
1

ऐसा लगता है कि पॉपअप चेनिंग possible नहीं है।

समाधान:

$(document).on("pageinit", function() { 
    $('.popupParent').on({ 
     popupafterclose: function() { 
      setTimeout(function(){ $('.popupChild').popup('open') }, 100); 
     } 
    }); 
}); 
1

मैं पॉपअप पॉपअप से यह ठीक काम करता है बदलने के लिए इस कोड का इस्तेमाल किया।

function switchpop() 
{ 
    $('#popupMenu').popup('close'); 
    $("#popupMenu").bind({popupafterclose: function(event, ui) 
      { 
       $("#notes").popup("open"); 
      } 
      });     
} 
3

मैं काम के आसपास के लिए इस सरल समारोह का प्रयोग किया:

यह एक बटन क्लिक समारोह में है: इस के साथ लड़ने के

function myPopup(myPage) { 
    history.back(); 
    setTimeout(function() { 
     $(myPage).popup('open'); 
    }, 100); 
} 
0

चार के बाद घंटे मैं इस के लिए समस्या कम पहले पॉपअप पर

$('#popupCall').popup('close'); 

    window.setTimeout(function() { $('#popupContact').popup('open') }, 50); 
3

@Rakoo एक अच्छा जवाब है।

$('#popup1').one("popupafterclose", function(){$('#popup2').popup("open")}).popup("close") 
:

$.mobile.switchPopup = function(sourceElement, destinationElement, onswitched) { 
    sourceElement.one("popupafterclose", function() { 
     destinationElement.popup("open") 
     !onswitched || typeof onswitched !== "function" || onswitched() 
    }).popup("close") 
}; 

आप onswitched सुविधा की जरूरत नहीं है और $ मोबाइल में जोड़ने से नहीं कर रहे हैं, यह इस छोटे और आसान हो सकता है: यहाँ एक leaner संस्करण है

संबंधित मुद्दे