2011-11-15 12 views
0

私はオプションを受け入れるはずのjqueryプラグインを使用していますが、何らかの理由でそうではありません。 (おそらくそれは決して終了しませんでしたか?)オプションを受け入れるようにjqueryプラグインを調整しますか?

コードはすでにオプションを受け入れるように設定されていますが、オプションオブジェクトは単に渡されていないようです。ここで

は、プラグインのコンストラクタです:

呼び出す
$.fn.extend({ // extend jQuery.fn object 
    pluginName: $.pluginName.construct 
}); 

:それを考える

$.fn.extend({ // extend jQuery.fn object 
    pluginName: function(options) { 
     return $.pluginName.construct(options); 
    } 
}); 

 $.extend({ 
    pluginName: new function(options) { 
     var defaults = {bla: 1}; 
     var options = $.extend(defaults, options); 
       .... 

     this.construct = function() { 
        return this.each(function() { 
        ..... 
       } 
      } 
    }); 

だから、私は、コードの最初のビットに以下の変更を加えましたそれは簡単だろう。 (私はjqueryプラグインを作成していない)。しかし、それは今私にエラーを与える:

TypeError: 'undefined' is not a function (evaluating 'this.each') 

私は.constructメソッドはオプションを取らないので、それは正しくないだと確信していますが、「新機能(オプション)」メソッドず、そして第二に、Iおそらく何とか$を渡す必要があります。

誰でも私にこの問題を解決するヒントを教えてもらえますか?

それはそうのような呼び出し可能でなければなりません:

$('#id').pluginName({first: true, blabla: "yes"}); 

EDIT:プラグインへの私の現在の変更は、ここに用意されていますhttp://jsfiddle.net/fbF8w/ - 誰でも詳しく見てみたい場合。

編集:それは働いています。みんな気にしない。ありがとう。

おかげで、 ウェズリー

+0

うーん...かもしれ 'リターン$(この).each(関数は、(){.....' – fliptheweb

答えて

0

は、私はあなたが使用しているチュートリアルのか分からないが、私はこの部分にはわからない:

this.construct = function() { 
       return this.each(function() { 
       ..... 
      } 
     } 

(私が実装しました、ここで説明したように行うようにしてくださいこのような方法でプラグインの多く):http://www.queness.com/post/112/a-really-simple-jquery-plugin-tutorial

(function($){ 

    $.fn.extend({ 

     //pass the options variable to the function 
     pluginname: function(options) { 


      //Set the default values, use comma to separate the settings, example: 
      var defaults = { 
       padding: 20, 
       mouseOverColor : '#000000', 
       mouseOutColor : '#ffffff' 
      } 

      var options = $.extend(defaults, options); 

      return this.each(function() { 
       var o = options; 

       //code to be inserted here 
       //you can access the value like this 
       alert(o.padding); 

      }); 
     } 
    }); 

})(jQuery); 
+0

それは私は、チュートリアルではありません存在を調整するプラグイン。あなたの例のように動作させるために必要な変更を加えることができるかどうかがわかります。 – Wesley

+0

私の現在の調整はここにあります:http://jsfiddle.net/fbF8w/あなたの例に似ていますが、まだ動作していません。試してみたいことは何か知っていますか?それは同じエラーメッセージです:TypeError: '未定義'は関数ではありません( 'this.each'を評価しています) – Wesley

+0

助けてくれてありがとうございました。 – Wesley

関連する問題