如何从Jquery插件中获取默认值

时间:2014-02-23 07:46:41

标签: jquery plugins

我没有得到我在插件中提到的默认值。它仅接受使用的给定值。

 $.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",
        });
    });

请访问http://jsfiddle.net/somsekhardash/Mx8jD/了解详情

2 个答案:

答案 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 );