Jquery 如何触发mobile.loading方法?

Jquery 如何触发mobile.loading方法?,jquery,jquery-mobile,cordova,Jquery,Jquery Mobile,Cordova,我正在尝试做一些看起来相当简单的事情。基本上,我有一个Ajax事件监听器来检查Ajax开始事件和Ajax结束事件,当检测到开始或结束时,它应该运行$.mobile.loading('show'),当Ajax事件结束时,它应该运行$.mobile.loading('hide')。但是,加载图标和文本不会显示 我认为我的Ajax事件开始和事件结束侦听器有问题,没有正确拾取Ajax开始和结束事件,因此我将$.mobile.loading('show')替换为标准警报,该警报工作正常。这是我的密码: $

我正在尝试做一些看起来相当简单的事情。基本上,我有一个Ajax事件监听器来检查Ajax开始事件和Ajax结束事件,当检测到开始或结束时,它应该运行
$.mobile.loading('show')
,当Ajax事件结束时,它应该运行
$.mobile.loading('hide')
。但是,加载图标和文本不会显示

我认为我的Ajax事件开始和事件结束侦听器有问题,没有正确拾取Ajax开始和结束事件,因此我将
$.mobile.loading('show')
替换为标准警报,该警报工作正常。这是我的密码:

$(“#page1”).ajaxStart(函数(){$.mobile.load('show');});

$(“#page1”).ajaxEnd(函数(){$.mobile.load('hide');});
我知道我做错了什么,但我不知道是什么。有什么想法吗

哦,如果有必要的话,这个JQM应用程序是在cordova(1.7.0)、jquery 1.8.1和jquery mobile 1.1.1下运行的

库按该顺序加载,事件侦听器在设备就绪事件之后加载

因此:

函数onBodyLoad(){document.addEventListener(“deviceready”,onDeviceReady,false);}
函数ondevicerady(){
/加载上面显示的ajax开始和结束侦听器代码/
}
编辑:以下是我的文档头的外观:


函数onBodyLoad()
{
文件。添加的监听器(“deviceready”,OnDeviceraddy,false);
}
函数ondevicerady()
{
$(“#第1页”).ajaxStart(函数(){
$.mobile.load('show');
});
$(“#第1页”).ajaxStop(函数(){
$.mobile.load('hide');
});
}

第1页有一些由JQM增强的表单字段,当用户单击submit按钮时,它运行一个函数,检查用户是否连接到网络,如果连接到网络,则通过Ajax提交数据。
$.mobile.loading
方法应该在Ajax运行时运行,但它不会运行。

您确定在调用Ajax时jquerymobile已初始化吗?这是你可以尝试并为我工作的东西。(您可以通过名称空间变量进一步清理代码,但这应该会给出一个想法)


谢谢你,基兰。我迷路了,因为无论我将pageinit放在文档头的什么位置,它似乎都没有启动。我确信这与我装载东西的方式或顺序有关。有什么建议吗?可能有点傻,但是您的
onBodyLoad
是否连接到
body onload='onBodyLoad()'
?是的,body标签在加载时应该加载onBodyLoad。哈哈,如果这有意义的话。你正在运行哪个版本的jQM?$。mobile.loading()仅在版本1.2.1中引入。我正在使用jqm1.1.1。我不知道我在看jQM 1.2的文档。所以我想我应该使用
$.mobile.showPageLoadingMsg
var deviceready = false, pageinitialized = false;
function onBodyLoad() { 
   document.addEventListener("deviceready", onDeviceReady, false); 
   $(document).bind("pageinit", function(){
     pageinitialized =true;
     myloading();
   });
}

function onDeviceReady() {
 / load the ajax start and end listeners code displayed above /
  myloading();
}

var myLoading = function(){
 if ( !deviceready || !pageinitialized ) {
  return
 }
 //Your ajax call here

}