尝试使用jQuery Mobile调用'loading'时未捕获TypeError

时间:2012-07-18 01:52:14

标签: jquery-mobile loading

我花了5个小时试图使用jQuery Mobile来显示加载消息。相反,我得到了:

  

未捕获的TypeError:对象#<对象>没有方法'加载'

这是我的代码:

<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.1.1/jquery.mobile-1.1.1.min.js"></script>

<script type="text/javascript">
    $.mobile.loading("show");
</script>

以下是当前代码:

    <head> 
    <title>My Page</title> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.1/jquery.mobile-1.1.1.min.css" />
    <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>

    <script src="http://code.jquery.com/mobile/1.1.1/jquery.mobile-1.1.1.min.js"></script>

    <script type="text/javascript">
        $.mobile.showPageLoadingMsg();
    </script>
</head> 

3 个答案:

答案 0 :(得分:2)

您遇到的异常是由于方法引用不准确,如错误中所述:

  

未捕获的TypeError:对象#没有方法'loading'

在1.2中添加了loading()方法,但您使用的是1.1.1,这就是为什么它声明它没有loading方法。

  

显示或隐藏可通过配置的页面加载消息   $ .mobile.loader原型选项,如小部件文档或   可以通过params对象来控制。

用法:

//cue the page loader
$.mobile.loading( 'show' );

//use theme swatch "b", a custom message, and no spinner
$.mobile.loading( 'show', { theme: "b", text: "foo", textonly: true });

您应该为您的版本使用的方法是showPageLoadingMsg()

用法:

//cue the page loader
$.mobile.loadingMessage = 'Loading...Please wait';
$.mobile.showPageLoadingMsg();

//use theme swatch "b", a custom message, and no spinner
$.mobile.showPageLoadingMsg("b", "This is only a test", true);

答案 1 :(得分:0)

您使用jquery.mobile-1.1.1.min.js。不支持jQuery mobile 1.1.1

$.mobile.loading("show");

这个方法在jQuery mobile 1.2.0中。

支持

$.mobile.showPageLoadingMsg();

您可以在 mobileinit 方法中配置loadMessage。

EX:

 $.mobile.loadingMessage = "Loading Message"; 
 $.mobile.loadingMessageTextVisible = true;
 $.mobile.loadingMessageTheme="a";

我有同样的问题,最后我找到了。

答案 2 :(得分:-1)

最后我找到了解决方案

它不能直接从简单的javascript函数调用,我需要将它与页面一起使用

$("#Step1").live("pageshow", function () {
    $.mobile.showPageLoadingMsg();  
});