编写自定义对象时jQuery不是函数错误

时间:2012-11-04 01:19:04

标签: jquery function object

我正在尝试开发我的第一个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提前。

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

现在我有另一个问题..你可以看到在de定义的输出函数中,我调用选项输出函数。传递一个参数,它是一个字符串数组。每当我遍历数据var时,它只包含一个项目,而实际上有三个..任何想法?

解决了这个问题,改变了:

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

成:

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

日Thnx!

1 个答案:

答案 0 :(得分:0)

您从未在以下

中定义WNMedia(),您的样本works
$(".multipleValues").MultipleValues({
        output: function (data) {
            var temp = "";
            temp += "<ul>";
            $.each(data, function (i) {
                temp += "<li>" + data[i] + "</li>";
            });
            temp += "<ul>";

            return temp;
        }
    });
​