2011-09-13 15 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のウィジェットファクトリを使用してプラグインにこれ​​をしたいと思います現在、私は次のようでこだわっています:

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

これは動作しません... JQM.jsの前にplugin.jsを置くと「モバイルが定義されていません」。後でそれを置くと何も起こりません。

私の質問: Javery Mobile.jsが動作する前に、mobileinitで動作するウィジェットを作る方法を教えてください。

ありがとうございました!

答えて

1

要素の後
この火災が強化されましたが、ページの前に

を示している:( see here)をJqueryMobileに

  1. バインドpagecreateイベント:あなたは、次のいずれかを行うことができます - ここでは可能性の検挙がありますJqueryMobileへ

  2. バインドpageinitイベント(same link):
    彼らはelemeを強化する前に、あなたはJQMウィジェットに変更を加えることができますこの方法ページ上のnts。これは、あなたがJQMコア自体を変更したい場合は、あなたが以前のイベントにバインドする必要が$(document).ready()

と同等でなければなりません。

  1. バインドJqueryMobile mobileinitにイベント(same link):
    あなただけのjQuery-Mobile.js前に、プラグインファイルを置くことによって(それ自体がmobileinitに設定)のjQueryモバイルのスタッフセットを上書きすることができます。ただし、Jquery-Mobile.jsを最初に実行する必要があるため、Jquery Mobileで推奨されているウィジェットのファクトリ構造を使用することはできません。

私は現在、私はあまりにも、DOMContentLoadedと結合することができるかどうかを確認するためにチェックしています。多分これは別の解決策です

1

答えは別の場所にあります。私はJQMのpagecreateイベントにバインドし、Jqueryのロード後に、しかしJQMがロードされる前にpluginを置く必要があります。正常に動作します。

関連する問題