我是jQuery mobile的新手,我刚刚开始将它用于一个只能通过智能手机使用的WordPress网站。我喜欢它现在的样子,我将jQm添加到等式中。
我遇到的问题是,在我提交表单后,它正确地将我带到了“谢谢”页面,此页面上只有一行文字阅读“谢谢您的播放”,但在此之后立即它可以追溯到它来自的原始形式。我可能无法更好地解释这一点,所以我在这里录制了一个带有问题的视频:http://screencast.com/t/QMD0BProSg
如果我使用“$ .mobile.ajaxEnabled = false;”禁用ajax它的工作原理,意味着它不会回到我的形式,但启用ajax并按照预期的方式工作,将摆脱我的其他几个问题。修复此行为将为我节省大量时间!
这是HTML:
<form id="stop-spin" action="/thanks-for-playing" method="post">
<input type="hidden" id="stop-spin-nonce" name="stop-spin-nonce" value="c96ef6a79f">
<input type="hidden" name="_wp_http_referer" value="/spinner/">
</form>
<div class="play-button">
<a href="javascript:void(0);" id="start-rotation" class="ui-link"></a>
<a href="javascript:void(0);" id="stop-rotation" style="display: none;" class="ui-link"></a>
</div>
为了简单起见,我删除了额外的元素,但值得注意的是我的表单里面没有按钮,我所做的是通过jQuery捕获#stop-rotation锚点的Click事件,我做了表格在那里提交。
这是我的jQuery:
$( document ).on( 'pageinit ready', function() {
$( document ).on( 'click', '.play-button a#stop-rotation', function() {
$( '#stop-spin' ).submit();
});
});
我可能会遗漏一些明显的东西,有人可以帮我解决这个问题吗?
目前这个小应用程序只是本地应用程序,但如果有人想要整体看一下,我可以尝试构建一个小提琴或上传到我的测试服务器。
提前感谢您的任何帮助
答案 0 :(得分:0)
更正了您的代码,这应该可以胜任。您永远不需要在JQM中使用ready()事件,例如将其替换为pageinit()或pageshow()。
$( document ).on( 'pageinit', function() {
$( '.play-button a#stop-rotation' ).on( 'click', function() {
$( '#stop-spin' ).submit();
return false;
});
});