我正在尝试构建一个相当基本的jQuery插件(主要是出于学习原因),直到我添加了limit
方法,我才遇到错误,这似乎很直接,但我在控制台中遇到了以下错误
未捕获引用错误:未定义限制
它适用于下面的第二个if方法(用注释标记)
$.fn.query = function(params) {
// Parameters //
var options = $.extend({
'shuffle' : false,
'limit' : undefined
}, params),
output = this;
// Shuffle //
if (shuffle) {
output = shuffle(this);
}
// Limit // !!!ERROR!!! //
if (limit !== undefined) {
output = output.slice(0, limit);
}
return output;
};
然后运行插件
var query = $(example).query({
shuffle: true,
limit: 5
});
我试着遵循所有的最佳实践,但如果你发现任何奇怪的地方,请告诉我。
这是一个包含所有代码的jsFiddle,您可以在控制台中看到错误。
http://jsfiddle.net/JamesKyle/CfXhw/
在极限前添加options.
。
options.limit
http://jsfiddle.net/JamesKyle/UWDsz/
您正在创建一个对象,因此为了访问它,您使用由句点object.variable
分割的对象和变量名
已更正jQuery代码:
$.fn.query = function(params) {
// Parameters //
var options = $.extend({
'shuffle' : false,
'limit' : undefined
}, params),
output = this;
// Shuffle //
if (options.shuffle) {
output = shuffle(this);
}
// Limit // !!!ERROR!!! //
if (options.limit !== undefined) {
output = output.slice(0, options.limit);
}
return output;
};