2011-09-13 3 views
2

플러그인에 넣으려는 일부 jquery 스크립트가 있습니다.Jquery Mobile - Jquery 위젯 팩토리를 사용하여 mobileinit에서 플러그인을 실행하는 방법

내 현재 설정에서는 코드가 "mobileinit"에서 실행되고 custom.js 파일이 Jquery.js와 Jquery Mobile.js 파일 사이에 위치합니다.

내가 뭘하는지입니다 :

(function($ , window, undefined) { 
$(window.document).bind('mobileinit', function(){ 
      alert ("init"); 
});  
})(jQuery,window); 
나는 현재 내가 다음에 붙어 JQM-developers

에서 권장하는 JQuery와 위젯 팩토리를 사용하여 플러그인에이를하고 싶습니다

: 작동하지 않습니다 ... 나는 JQM.js 전에 plugin.js를 넣어 경우

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

"모바일은 정의되지 않았습니다." 나중에 넣으면 아무 일도 일어나지 않습니다.

내 질문 : Mobileinit, 즉 Javery Mobile.js가 실행되기 전에 실행되는 위젯을 만드는 방법은 무엇입니까?

도움 주셔서 감사합니다.

답변

1

확인. 요소 후
이 화재가 향상되었습니다하지만 페이지 이전

주심 : ( see here를) JqueryMobile에

  1. 바인드 pagecreate 이벤트 : 다음 중 하나를 수행 할 수 있습니다 - 여기 가능성의 검거이다 JqueryMobile에

  2. 바인드 pageinit 이벤트 (same link) :
    가 eleme을 강화하기 전에 JQM 위젯을 변경할 수 있습니다이 방법 페이지에 nts. 당신은 JQM 코어 자체를 변경하려는 경우는, 그러나 $(document).ready()

에 동등해야합니다, 당신은 이전 이벤트에 바인딩해야합니다. JqueryMobile에

  1. 바인드 mobileinit 이벤트 (same link) :
    당신은 jQuery를-Mobile.js 전에 플러그인 파일을 넣어 JQuery와 모바일 물건 세트 (자체 mobileinit 설정) 재정의 할 수 있습니다. 그러나 Jquery-Mobile.js를 먼저 실행해야하므로 Jquery Mobile에서 권장하는 위젯 팩토리 구조를 더 이상 사용할 수 없습니다.

나는 현재 내가 너무 DOMContentLoaded에 결합 할 수 있는지 확인하고 있습니다. 어쩌면 이것이 또 다른 해결책 일 것입니다.

1

어딘가에 다른 답변이 있습니다. JQM pagecreate 이벤트에 바인딩하고 Jquery가로드 된 후 Plugin을 넣어야하지만 JQM이로드되기 전에 필요하다. 잘 작동합니다.