我正在创建我的第一个基于jQuery的插件,但我遇到了问题。
我收到一条错误,指出当我尝试console.log时,var minHeight未定义。
(function ($) {
$.fn.something = function (options) {
var defaults = {
selector: '.selector',
minHeight: defaults.selector.height(),
speed: 200
}
console.log(defaults.minHeight);
};
})(jQuery);
答案 0 :(得分:1)
要理解你想要达到的目标真的很难,但你目前的尝试方式有些问题。您正在尝试在定义对象本身(defaults.selector
)之前设置对象的属性(defaults
)。
为了完成它,最简单的方法是将minHeight
的定义拉到其他行。你也许想看看jQuery的$.extend
:
(function ($) {
$.fn.something = function (options) {
var defaults = {
selector: '.selector',
speed: 200
}
defaults.minHeight = $(defaults.selector).height();
console.log(defaults.minHeight);
// extend() will set the values of 'options' that are empty with default's
var options = $.extend({}, defaults, options);
// options.minHeight will be the height of '.selector' if no options are
// given, or 'minHeight' if one is given as parameter
console.log(options.minHeight);
};
})(jQuery);
// testing code so you get what I mean
$().something({minHeight: 10});
$().something();
请参阅the code above in action(打开控制台)。