admin 发表于 2013-8-24 16:48:31

jQuery Mobile 如何手动显示ajax加载器,提示加载中

在使用jQuery Mobile开发时,有时候我们需要在请求ajax期间,显示加载提示框(例如:一个旋转图片+一个提示:加载中...)。这个时候,我们可以手动显示jQuery Mobile的加载器,大致流程如下:


1. 启动加载器,显示“加载中...”;
2. 进行ajax请求,请求完成后更新页面数据,刷新jQuery Mobile控件样式;
3. 关闭加载器。


下面就来讲解jQuery Mobile 1.2.0 和 1.1.0 中手动显示加载器的方法(很简单,几行代码就OK了!)。


首先是jQuery Mobile 1.2.0 引用:    <!DOCTYPE html>
    <html>
      <head>
            <title>Ajax测试</title>
            <meta charset="gbk">
            <meta name="viewport" content="width=device-width, initial-scale=1">
            <!-- 从官方下载的文件放在项目的 jquery-mobile 目录中 -->
            <link rel="stylesheet" href="jquery-mobile/jquery.mobile-1.2.0.min.css"/>
            <link rel="stylesheet" href="jquery-mobile/jquery.mobile.structure-1.2.0.min.css"/>
            <script src="jquery-mobile/jquery-1.8.2.min.js"></script>
            <script src="jquery-mobile/jquery.mobile-1.2.0.min.js"></script>
      <head>
编写javascript函数:    <script>
    //显示加载器
    function showLoader() {
      //显示加载器.for jQuery Mobile 1.2.0
      $.mobile.loading('show', {
            text: '加载中...', //加载器中显示的文字
            textVisible: true, //是否显示文字
            theme: 'a',      //加载器主题样式a-e
            textonly: false,   //是否只显示文字
            html: ""         //要显示的html内容,如图片等
      });
    }
      
    //隐藏加载器.for jQuery Mobile 1.2.0
    function hideLoader()
    {
      //隐藏加载器
      $.mobile.loading('hide');
    }
    </script>
准备两个按钮,一个用于启动(显示)加载器,一个用于停止(隐藏)加载器:    <body>
      <div data-role="page">
            <!-- 头部 -->
            <div data-role="header">
                <h3>Ajax测试</h3>
            </div>
            <!-- 内容 -->
            <div data-role="content">
                <h3>Ajax测试</h3>
                  
                <input type="button" value="显示ajax加载器" onclick="showLoader()"/>
                <input type="button" value="隐藏ajax加载器" onclick="hideLoader()"/>
                  
             </div>
    </body>
效果如下(主题为:'a'):
http://img.my.csdn.net/uploads/201302/01/1359701104_3709.png
当然,你可以调整$.mobile.loading('show', { ... }中的参数,实验各种不同的加载器效果。


加载器的具体说明见jQuery Mobile 1.2.0 官方demo演示说明:


http://jquerymobile.com/demos/1.2.0/docs/pages/loader.html

admin 发表于 2013-8-24 17:08:23

jquery mobile 1.3.2中如下显示加载中图片<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>jQuery Mobile Web 应用程序</title>
<link href="css/jquery.mobile.structure-1.3.2.css" rel="stylesheet" type="text/css"/>
<link href="css/jquery.mobile-1.3.2.css" rel="stylesheet" type="text/css"/>
<script src="js/jquery.js" type="text/javascript"></script>
<script src="js/jquery.mobile-1.3.2.min.js" type="text/javascript"></script>
<script>
function goTo(page) {
    showLoading();
    $.mobile.changePage(page, {
          transition: "slide"
      });
}
function goBack() {
    $.mobile.back();
}

function showLoading(){
    $.mobile.loadingMessageTextVisible = true;
    $.mobile.showPageLoadingMsg("a", "加载中..." );
}
function hideLoading(){
    $.mobile.hidePageLoadingMsg();
}


</script>
</head>
<body>

<div data-role="page" id="page">
    <div data-role="header" data-position="fixed">
      <h1>phonegap中文网</h1>
    </div>
    <div data-role="content">   
      <ul data-role="listview">
            <li><a href="#" onclick="showLoading();">关于我们</a></li>
            <li><a href="#page3">联系我们</a></li>
            <li><a href="#" onclick="goTo('zhaopin.html');">求职招聘</a></li>
      </ul>      
    </div>
    <div data-role="footer">
      <h4>页脚</h4>
    </div>
</div>

<div data-role="page" id="page2">
    <div data-role="header">
      <h1>关于我们</h1>
    </div>
    <div data-role="content">   
      内容
    </div>
    <div data-role="footer">
      <h4>页脚</h4>
    </div>
</div>

<div data-role="page" id="page3">
    <div data-role="header">
      <h1>联系我们</h1>
    </div>
    <div data-role="content">   
      内容
    </div>
    <div data-role="footer">
      <h4>页脚</h4>
    </div>
</div>

<div data-role="page" id="page4">
    <div data-role="header">
      <h1>求职招聘</h1>
    </div>
    <div data-role="content">   
      内容
    </div>
    <div data-role="footer">
      <h4>页脚</h4>
    </div>
</div>

</body>
</html>

iuv 发表于 2013-9-25 11:52:37

使用jquery mobile1.3.2

function test(){
$.mobile.loading('show');
/**若干逻辑代码**/
//$.mobile.loading('hide');
}
然后发现总是逻辑代码执行完毕后才显示loading……
这个怎么解决啊?

admin 发表于 2013-9-25 11:56:54

iuv 发表于 2013-9-25 11:52
使用jquery mobile1.3.2

function test(){


一般是点击跳转的时候让 loading 显示   跳转过去就自动隐藏了,后面的课程会给大家讲解一下

iuv 发表于 2013-9-25 19:00:52

admin 发表于 2013-9-25 11:56
一般是点击跳转的时候让 loading 显示   跳转过去就自动隐藏了,后面的课程会给大家讲解一下 ...

但是我有这样的需求啊~~~

phonegap100 发表于 2013-9-30 21:37:50

帮帮顶顶!!

admin 发表于 2013-10-3 07:40:33

正在学习中 谢谢楼主了 非常支持 开源
页: [1]
查看完整版本: jQuery Mobile 如何手动显示ajax加载器,提示加载中