我正在尝试做一些看起来相当简单的事情。基本上我有一个 Ajax 事件侦听器,它检查 Ajax 开始事件和 Ajax 结束事件,当检测到开始或结束时,它应该运行$.mobile.loading('show')
,当 Ajax 事件结束时它应该运行$.mobile.loading('hide')
。但是,加载图标和文本不显示。
认为我的 Ajax 事件开始和事件结束侦听器没有正确接收 Ajax 开始和结束事件有问题,我将其替换$.mobile.loading('show')
为标准警报,该警报正常工作。这是我的代码:
$("#page1").ajaxStart(function() { $.mobile.loading('show'); });
和
$("#page1").ajaxEnd(function() { $.mobile.loading('hide'); });
我知道我做错了什么,但我不知道是什么。任何想法?
哦,在重要的情况下,这个 JQM 应用程序在 cordova (1.7.0) 和 jquery 1.8.1 和 jquery mobile 1.1.1 下运行
库按该顺序加载,事件侦听器在设备就绪事件之后加载。
所以:
function onBodyLoad() { document.addEventListener("deviceready", onDeviceReady, false); }
function onDeviceReady() {
/ load the ajax start and end listeners code displayed above /
}
编辑: 这是我的文件头的样子:
<script type="text/javascript" charset="utf-8" src="cordova-1.7.0.js"></script>
<script src="js/jquery-1.8.1.min.js"></script>
<script src="js/jquery.mobile-1.1.1.js"></script>
<script type="text/javascript">
function onBodyLoad()
{
document.addEventListener("deviceready", onDeviceReady, false);
}
function onDeviceReady()
{
$("#page1").ajaxStart(function() {
$.mobile.loading('show');
});
$("#page1").ajaxStop(function() {
$.mobile.loading('hide');
});
}
Page 1 有一些由 JQM 增强的表单字段,当用户单击提交按钮时,它会运行一个函数来检查用户是否连接到网络,如果是,则通过 Ajax 提交该数据。该$.mobile.loading
方法应该在 Ajax 执行它的操作时运行,但它没有。