我正在尝试开发我的第一个 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() is not a function)。有人可以在这里帮我吗,我有点卡住了..
==========================================
现在我有另一个问题。你可以看到在定义的输出函数中,我调用了选项输出函数。传递了一个参数 vals,它是一个字符串数组。每当我遍历数据变量时,它只包含一项,而实际上有三项。有什么想法吗?
解决了问题,改了:
temp = opt.output.apply(null, vals);
进入:
temp = opt.output.apply(null, [vals]);