2011-11-15 72 views
0

我正在使用應該接受選項的jquery插件,但不是由於某種原因。 (也許它從來沒有完成?)調整jquery插件以接受選項?

該代碼已被設置爲接受選項,但似乎該選項對象根本沒有被傳遞。

這裏是插件的構造函數:

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

的呼叫:

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

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

所以,我做了如下修改代碼的第一位:

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

思考它會很容易。 (我從來沒有創建一個jQuery插件)。然而,現在給我一個錯誤:

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

我敢肯定,因爲.construct方法沒有考慮的選項是不正確的,但「新功能(選項)」方法做,其次,我可能還需要以某種方式傳遞$。

任何人都可以給我一個關於如何解決這個問題的提示嗎?

它應該是可調用就像這樣:

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

編輯:我現在到插件的變化都可以在這裏:http://jsfiddle.net/fbF8w/ - 如果有人想一探究竟。

編輯:得到它的工作。沒關係的人。謝謝。

感謝, 韋斯利

+0

嗯...是'$回報(本)。每個(函數(){.....' – 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

這不是一個教程,我調整一個existi ng插件。我會看看是否可以進行必要的更改以使其像您的示例一樣工作,謝謝。 – Wesley

+0

我目前的調整是在這裏:http://jsfiddle.net/fbF8w/使它更像你的例子,但仍然無法正常工作。你知道還有什麼可以嘗試嗎?這是相同的錯誤消息:TypeError:'undefined'不是一個函數(評估'this.each') – Wesley

+0

得到它的工作,感謝您的幫助。 – Wesley