2013-07-29 8 views
0

Я относительно новичок в JQuery и JQuery mobile, я просто пытался и учебник, чтобы добавить загрузку анимации на странице, я просто следовал коду, представленному в одном демо. Однако я получаю следующую ошибку.jquery mobile: Object [object Object] не имеет метода 'jqmData'

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> 

Ошибка указывает на этой линии в яваскрипта theme = $this.jqmData("theme")
когда я отлаживается на браузер консоли я был в состоянии увидеть данные кнопки значения, присвоенные переменной $ этой переменной Советует

+0

Woul также поможет понять, что ваша версия Worklight .... –

+0

Am с использованием версии 6 –

ответ

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> 
+0

Привет, спасибо за ваш ответ, это то, что я которые в настоящее время refrenced '<ссылка HREF = "jqueryMobile/jquery.mobile-1.3.1.css" отн = "таблицы стилей"> <сценарий SRC = "JS/JQuery-2.0.3.js"> <сценарий src = "jqueryMobile/jquery.mobile-1.3.1.js"> ' –

+0

Ах, попробуйте использовать jQuery версии 1.9.1 (это тот, который будет использоваться с jQuery Mobile 1.3.1). Упрощенный jsFiddle здесь - http://jsfiddle.net/35hBY/ –

+0

Неужели это еще не работает :(Запустил ли он его на сервере рабочей подсветки, вы думаете, что это может иметь какое-то отношение к этому? –

0

Попробуйте поставить свой сценарий в «mobileinit» обработчик события (или обработчик страницы событий), как:

 
    <script src="js/jquery-2.0.3.js"></script> 
    <script> 
     window.$ = window.jQuery = WLJQ; 
     $(document).on('mobileinit', function() { 
      // your script 
     }); 
    </script> 
    <script src="jqueryMobile/jquery.mobile-1.3.1.js"></script>
Примечание последовательность сценария

+0

Привет, спасибо за входные данные, это 'window. $ = window.jQuery = WLJQ;' просто используется для указания версии jQuery, предоставленной при работе, я прав, поэтому если я использую свой собственный JQuery verison в скрипте, могу ли я игнорировать эту строку без каких-либо последствий? –

+0

Да, и я думаю, вы можете удалить строку и попробовать следующим образом: 'window. $ = WLJQ; window.jq = jQuery.noConflict(); (function ($) {// ваш скрипт}) (jq); ' – zhangxm

Смежные вопросы