Jquery Mobile - как запустить плагин на mobileinit с помощью фабрики виджетов Jquery - PullRequest
2 голосов
/ 14 сентября 2011

У меня есть несколько jquery-скриптов, которые я хочу добавить в плагин.

В моей текущей настройке код выполняется в "mobileinit" с моим файлом custom.js, который находится между файлами Jquery.js и Jquery Mobile.js.

Вот что я делаю:

(function($ , window, undefined) {
$( window.document ).bind('mobileinit', function(){
          alert ("init");
 });     
})(jQuery,window);

Я хотел бы превратить это в плагин, используя фабрику Jquery Widget в соответствии с рекомендациями JQM-разработчиков

В настоящее время я застрял со следующим:

(function( $, window, undefined ){
   $.widget( "myPlugin", $.mobile.widget, {
        options: { },
        _create: function() {$.fn.myPlugin = function() {       
          alert ("init");          
           };
   $( window.document ).bind('mobileinit', function(){ {
     myPlugin();
     });
})( jQuery, window );

, который не работает ... если я добавлю plugin.js перед JQM.js "мобильный не определен". Если я положу это потом, ничего не происходит.

Мой вопрос: Как сделать виджет, который работает на mobileinit, то есть до запуска Jquery Mobile.js.

Спасибо за помощь!

Ответы [ 2 ]

1 голос
/ 08 октября 2011

Хорошо.Вот обзор возможностей - вы можете сделать одно из следующих действий:

  1. привязка к событию JqueryMobile pagecreate ( см. Здесь ):
    Это срабатывает после улучшения элементов, но перед отображением страницы

  2. привязка к событию JqueryMobile pageinit ( та же ссылка ):
    Таким образом, вы можете вносить изменения в виджеты JQM, прежде чем они улучшат элементы на странице.Это должно быть эквивалентно $(document).ready()

Однако, если вы хотите изменить само ядро ​​JQM, вам необходимо привязаться к более ранним событиям.

  1. привязка к событию JqueryMobile mobileinit ( та же ссылка ):
    Вы можете переопределить только набор материалов Jquery Mobile (сам установлен на mobileinit) поместив файл плагина ДО Jquery-Mobile.js.Однако, таким образом, вы больше не можете использовать структуру фабрики виджетов, рекомендованную Jquery Mobile, потому что для этого требуется Jquery-Mobile.js для первого запуска.

В настоящее время я проверяю, могу ли я связываться сDOMContentLoaded тоже.Может быть, это другое решение

1 голос
/ 20 сентября 2011

Получил ответ где-то еще.Мне нужно привязать к событию pagecreate JQM и поставить плюсование после загрузки Jquery, но до загрузки JQM.Работает отлично.

...