jQM - Popup opening

by ArtemGr

HTML

<div data-role="page" id="indexpage">
  <div data-role="popup" data-history="false" id="appPopup">test popup</div>
</div>

JavaScript

/** Workaround for the jQuery Mobile popup opening bug.
 * @param {string} id The DOM id of the popup div. */
function popupSturdyOpen (id) {
  var ticksSeen = -1
  var interval = setInterval (function(){
    var hidden = $('#' + id + '-popup') .hasClass ('ui-popup-hidden')
    if (hidden || ++ticksSeen <= 0) {
      $('#' + id) .popup ('open')
    } else {
      if (++ticksSeen > 20) clearInterval (interval)
    }
  }, 100)
}

$("#indexpage") .on ("pagecreate", function () {
  popupSturdyOpen ('appPopup')
});

// log popup events
$(document).on("popupcreate popupinit popupafteropen popupafterclose", "[data-role=popup]", function (e) {
    console.log(e.target.id + " -> " + e.type);
});