我有一个简单的登录对话框,我在文档加载时弹出:
<div data-role="popup" id="signupPopup" data-theme="a" class="ui-corner-all" data-dismissible="false" data-add-back-btn="true" data-transition="pop">
<h3 class="centerText">Login</h3>
<div class="popup">
<form>
<input type="email" name="email" id="email" class="centerText" placeholder="email" data-theme="a"/>
<input type="text" name="zip" id="zip" class="centerText" placeholder="pass" data-theme="a"/>
</form>
</div>
</div>
$(document).ready(function(){
$("#signupPopup").popup('open');
});
这是示例的 jsFiddle。现在,在正常加载时弹出弹出窗口没有问题,然后它将 url 哈希更新为http://myurl.com/#&ui-state=dialog并且如果我在 url 中单击重新加载这个哈希我得到js错误:Uncaught Error: cannot call methods on popup prior to initialization; attempted to call method 'open'
。
我试图在http://view.jquerymobile.com/master/demos/widgets/popup/上复制相同的行为
通过将 has 添加到链接中,如下所示:
http://view.jquerymobile.com/master/demos/widgets/popup/#&ui-state=dialog但我无法复制相同的错误。所以,我想知道是否有人遇到了这个错误以及他/她是如何解决的?顺便说一句,我确实检查了谷歌关于这个错误的所有前 20 个链接,但没有一个有帮助,包括一些来自 SO。另外,值得注意的是,如果我使用 jQuery Mobile 1.2 和 jQuery 1.7.1 ,我不会收到此错误。
我正在使用 jQuery Mobile 1.3.1 和 jQuery 1.9.1。