2012-11-04 45 views
1

當我試圖開發我的第一個jQuery的對象之一:jQuery的不是一個函數錯誤編寫自定義對象

jQuery(function ($) { 
    var WNM = function (element) { 
     var elem = $(element); 
     var obj = this; 

     var MultipleValues = function (element) { 
      var elem = $(element); 
      var obj = this; 
      var opt; // Options; 
      var sep; // Seperator string; 
      var vals; // Array wich holds the values; 

      //$(obj).find(".multipleValuesSett_MaxItems").val(); 

      this.MultipleValues = function (options) { 
       opt = options; 
       sep = $(obj).find(".multipleValuesSett_Seperator").val(); 

       loadValues(); 

       outputValues(); 
      }; 

      var loadValues = function() { 
       var values = $(obj).find(".multipleValues_Values").val(); 
       vals = values.split(sep); 
      }; 

      var outputValues = function() { 
       var temp; 
       if ($.isFunction(opt.output)) { 
        temp = opt.output.apply(this, vals); 
        $(obj).find(".multipleValues_ValuesOutput") 
         .append(temp); 
       } 
      }; 
     }; 

     this.MultipleValues = function (options) { 
      if (elem.length) { 
       var mv = new MultipleValues(elem); 
       mv.MultipleValues(options); 
       return mv; 
      } 
      else 
       return null; 
     }; 

    }; 

    $.fn.MultipleValues = function() { 
     return wnm = new WNM(this); 
    }; 

}); 

現在,每當我嘗試運行此:

$(document).ready(function() { 
    $(".multipleValues").WNMedia().MultipleValues({ 
     output: function (data) { 
      var temp = ""; 
      temp += "<ul>"; 
      $.each(data, function (i) { 
       temp += "<li>" + data[i] + "</li>"; 
      }); 
      temp += "<ul>"; 

      return temp; 
     } 
    }); 
}); 

我得到的以下錯誤:(TypeError:$(「。multipleValues」)。WNMedia()不是函數)。有人可以幫我在這裏請,我有點卡住..

thnx提前。

=========================================

現在我有另一個問題..你可以看到,在定義的輸出功能,我稱之爲選項輸出功能。傳遞一個參數vals,這是一個字符串數組。每當我通過數據var循環,它只包含一個項目,而事實上有三個..任何想法?

解決問題,改變了:

temp = opt.output.apply(null, vals); 

到:

temp = opt.output.apply(null, [vals]); 

日Thnx!

回答

0

你永遠在以下

$(".multipleValues").MultipleValues({ 
        output: function (data) { 
            var temp = ""; 
            temp += "<ul>"; 
            $.each(data, function (i) { 
                temp += "<li>" + data[i] + "</li>"; 
            }); 
            temp += "<ul>"; 

            return temp; 
        } 
    }); 
​ 
+0

日Thnx的快速反應定義WNMedia(),您的樣本works!這解決了我的問題! Thnx男人! –

+0

現在我有另一個問題..你可以看到,在定義的輸出功能,我稱之爲選項輸出功能。傳遞一個參數vals,這是一個字符串數組。每當我通過數據var循環,它只包含一個項目,而事實上有三個..任何想法? –

+0

可能會啓動另一個問題?另外,在回調函數中使用console.log(data),調試 –

相關問題