2013-03-05 85 views
0

我的代码中有下列情况。在其中搜索结果显示每个结果页面有这样的代码:jQuery Mobile在页面转换过程中加载内容

<a href='#pageSearchDetail'>Result</a> 

上的点击#pageSearchDetail我用下面的事件做一些事情显示在页面之前的页面:

$(document).delegate('#pageSearchDetail', 'pagebeforeshow', function() 
{  
    AjaxSearchDetail();   
}); 

在AjaxSearchDetail中,我从Web服务器加载一些数据并将该数据插入到DOM中。 我的问题是现在页面已经显示,尽管ajax请求尚未完成。因此,直到ajax加载完成后,页面才会部分显示,并显示为“空”。

代码Ajax请求:

function AjaxSearchDetail() 
{    
    var data = "&data=test"; 

    $.ajax({ 
     data: data,   
     success: Success, 
     error: Error 
    }); 
} 

另一个有趣的事情是,加载部件没有在页面加载过程中。我究竟做错了什么 ?

+0

http://stackoverflow.com/questions/1964839/jquery-please-wait-loading -animation – 2013-03-05 21:17:10

+0

使用'event.preventdefault();'或'event.stopImmediatePropagation();'来防止JQM执行处理程序。在执行你自己的处理程序之前使用它们。 http://api.jquery.com/event.preventDefault/或http://api.jquery.com/event.stopImmediatePropagation/ – Omar 2013-03-05 22:09:25

回答

1

我解决了这个问题,用下面的代码:现在

$(document).ajaxStart(function() {  
    $.mobile.loading('show'); 
}); 

$(document).ajaxStop(function() { 
    $.mobile.loading('hide'); 
}); 

我用:

$(document).on("pagechange", function(e, data) 
{ 
    var pageID = data.toPage.attr("id"); 

    switch (pageID) 
    { 

    } 
}