2011-09-13 22 views
2

我有一些jquery腳本,我想將它們放入插件中。Jquery Mobile - 如何在mobileinit中使用Jquery Widget工廠運行插件

在我當前的設置中,代碼在「mobileinit」執行,我的custom.js文件位於Jquery.js和Jquery Mobile.js文件之間。

這是我在做什麼:

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

我想做成使用jQuery的Widget工廠插件本所推薦的JQM-developers

目前我只能堅持以下幾點:

(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運行之前。

感謝您的幫助!

回答

1

好的。這裏是一個充滿可能性的綜述 - 你可以做以下任一操作:

  1. 結合JqueryMobile pagecreate事件(see here):
    元素後,該火災已得到增強,但頁面之前顯示

  2. 結合JqueryMobile pageinit事件(same link):
    這樣,他們加強eleme,然後才能進行更改JQM部件nts在頁面上。這應該是等同於$(document).ready()

但是,如果你想改變JQM核心本身,你需要綁定到更早的活動。

  1. 結合JqueryMobile mobileinit事件(same link):
    你只能把你的插件文件之前,jQuery的Mobile.js覆蓋jQuery Mobile的東西集(本身設置爲mobileinit)。但是這樣你就不能再使用Jquery Mobile推薦的widget工廠結構了,因爲它需要Jquery-Mobile.js先運行。

我目前正在檢查,看看我是否能綁定到DOMContentLoaded了。也許這是另一種解決方案

1

在其他地方得到答案。我需要綁定到JQM pagecreate事件,並在Jquery加載之後,但在JQM加載之前進行插入。工作正常。

相關問題