我正在尝试开发我的第一个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!
答案 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;
}
});