我没有得到我在插件中提到的默认值。它仅接受使用的给定值。
$.fn.mystyle = function( options ) {
// default value
var defaults={
textColor : "yellow" ,
textDeco : "underline",
backColor : "red",
fontSize : 19
};
// assigning to a variable
var setting = $.extend( {} , $.fn.mystyle.defaults , options );
// returing the value
return this.css({
color : setting.textColor,
backgroundColor : setting.backColor,
textDecoration : setting.textDeco,
fontSize : setting.fontSize
});
};
$( document ).ready(function() {
$("p").mystyle({
textColor: "orange",
});
});
答案 0 :(得分:2)
这是因为您使用默认值的方式。
你有一个名为defaults
的局部变量,它持有默认设置对象,但当你尝试将用户选项与默认设置合并时,你使用的是另一个对象引用$.fn.mystyle.defaults
值为undefined
解决方案是将您的默认对象定义为
$(function () {
$.fn.mystyle = function (options) {
// default value
// assigning to a variable
var setting = $.extend({}, $.fn.mystyle.defaults, options);
// returing the value
return this.css({
color: setting.textColor,
backgroundColor: setting.backColor,
textDecoration: setting.textDeco,
fontSize: setting.fontSize
});
};
$.fn.mystyle.defaults = {
textColor: "yellow",
textDeco: "underline",
backColor: "red",
fontSize: 19
};
});
演示:Fiddle
答案 1 :(得分:0)
var setting = $.extend( {} , defaults , options );