0

我对 Jquery 和 Jquery mobile 比较陌生,我只是在尝试教程以在页面上添加加载动画,我只是按照其中一个演示中提供的代码进行操作。但是我收到以下错误。

Uncaught TypeError: Object [object Object] has no method 'jqmData' 

我正在使用以下代码片段和 javascript

<button class="show-page-loading-msg ui-btn-right" data-icon="refresh" data-theme="d" data-textonly="false" data-textvisible="true" data-msgtext="Loading..." data-inline="true">Refresh</button>

<script>
window.$ = window.jQuery = WLJQ;
$( document ).on( "click", ".show-page-loading-msg", function() {
var $this = $( this ),
    theme = $this.jqmData( "theme" ) || $.mobile.loader.prototype.options.theme,
    msgText = $this.jqmData( "msgtext" ) || $.mobile.loader.prototype.options.text,
    textVisible = $this.jqmData( "textvisible" ) || $.mobile.loader.prototype.options.textVisible,
    textonly = !!$this.jqmData( "textonly" );
    html = $this.jqmData( "html" ) || "";
$.mobile.loading( "show", {
        text: msgText,
        textVisible: textVisible,
        theme: theme,
        textonly: textonly,
        html: html
});

setTimeout(WL.Client.reloadApp, 5000);
$.mobile.loading( "hide" );
});

</script>

当我在浏览器控制台上进行调试时,错误指向 javascript 中的这一行, theme = $this.jqmData( "theme" )
我能够看到分配给 $this 变量的按钮数据值 请建议,

4

2 回答 2

0

尝试将您的脚本放入“mobileinit”事件处理程序(或页面事件处理程序)中,例如:

    <script src="js/jquery-2.0.3.js"></script>
    <脚本>
        窗口.$ = 窗口.jQuery = WLJQ;
        $(document).on('mobileinit', function() {
            // 你的脚本
        });
    </脚本>
    <script src="jqueryMobile/jquery.mobile-1.3.1.js"></script>
注意脚本的顺序

于 2013-08-01T08:27:38.097 回答
0

如果您运行以下命令:

console.log($.mobile.version);

...并检查控制台。它打印出版本吗?还是说它是未定义的?

如果未定义,请检查您是否正确引用了 jQuery 和 jQuery 移动库,如下所示:

<link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css">
<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>
于 2013-07-29T11:58:38.617 回答