这是我的代码(http://jsfiddle.net/nB4Hg/):
JQuery的:
// plugin code
(function($) {
$.fn.coloredDiv = function(options) {
// defaults
var options = {
'color' : 'black'
};
$(this).css('background', options.color);
}
})(jQuery);
// use the plugin
$(function() {
$("#foo").coloredDiv({ 'color' : 'red' });
$("#bar").coloredDiv();
});
CSS:
div { width: 100px; height: 100px; margin-bottom: 10px; }
HTML:
<div id="foo"></div>
<div id="bar"></div>
现在我正在尝试学习如何在编写插件时使用选项。在我的代码中,我要做的是指定第一个div应该是红色,第二个div应该是没有选项应该是默认的黑色。但两者都是黑色的。我做错了什么?
答案 0 :(得分:2)
您当前的方法是接受名为options
的参数,但随后声明另一个名为options
的变量“遮蔽”参数,因此后续代码永远不会看到传入的选项。
相反,您应声明默认选项,然后使用$.extend
覆盖用户传入的默认值,如果适用:
$.fn.coloredDiv = function (userOptions) {
var options = $.extend({
color: "black"
}, userOptions);
// ...
};