Javascript 如何使用jQuery插件参数变量
我正在尝试构建一个相当基本的jQuery插件(主要是出于学习的原因),在添加Javascript 如何使用jQuery插件参数变量,javascript,jquery,jquery-plugins,Javascript,Jquery,Jquery Plugins,我正在尝试构建一个相当基本的jQuery插件(主要是出于学习的原因),在添加limit方法之前,我还没有遇到过错误,这看起来很简单,但是我在控制台中遇到了以下错误 未捕获引用错误:未定义限制 它适用于下面的第二个if方法(用注释标记) 然后运行插件 var query = $(example).query({ shuffle: true, limit: 5 }); 我试图遵循所有的最佳实践,但如果您发现任何奇怪的地方,请告诉我 这是一个包含所有代码的JSFIDLE,您可以在控制
limit
方法之前,我还没有遇到过错误,这看起来很简单,但是我在控制台中遇到了以下错误
未捕获引用错误:未定义限制
它适用于下面的第二个if方法(用注释标记)
然后运行插件
var query = $(example).query({
shuffle: true,
limit: 5
});
我试图遵循所有的最佳实践,但如果您发现任何奇怪的地方,请告诉我
这是一个包含所有代码的JSFIDLE,您可以在控制台中看到错误
添加
选项。
在限制前面
options.limit
您正在创建一个对象,因此为了访问它,您使用对象和变量名,并按句点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;
};
添加
选项。
在限制前面
options.limit
您正在创建一个对象,因此为了访问它,您使用对象和变量名,并按句点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;
};
试试
console.log
上的shuffle
,我敢打赌这不是你认为的shuffle
。@adeneo shuffle一直工作得很好。如果没有限制方法,它可以正常工作,此洗牌是基于另一个人的工作。它不能正常工作,shuffle
是options
对象的一部分,可以通过options访问。shuffle
,就像options一样。限制将是!另一方面,shuffle也是一个函数,因此您的if语句总是正确的。请尝试控制台。在shuffle
上记录,我敢打赌这不是您认为的shuffle
。@adeneo shuffle工作得很好。如果没有限制方法,它可以正常工作,此洗牌是基于另一个人的工作。它不能正常工作,shuffle
是options
对象的一部分,可以通过options访问。shuffle
,就像options一样。限制将是!另一方面,shuffle也是一个函数,所以if语句总是正确的。应该这样做吗?我以前没有见过。这是你必须做的:)你把两个参数放在options变量中,这样你就可以通过这种方式访问:)你还需要添加选项。
在使用随机播放之前。变量shuffle
在此上下文中不存在,但options.shuffle
存在。应该这样做吗?我以前没有见过。这是你必须做的:)你把两个参数放在options变量中,这样你就可以通过这种方式访问:)你还需要添加选项。
在使用随机播放之前。变量shuffle
在此上下文中不存在,但options.shuffle
存在。