Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 编写jQuery插件时如何使用选项?_Javascript_Jquery_Plugins - Fatal编程技术网

Javascript 编写jQuery插件时如何使用选项?

Javascript 编写jQuery插件时如何使用选项?,javascript,jquery,plugins,Javascript,Jquery,Plugins,这是我的代码(): JQuery: // plugin code (function($) { $.fn.coloredDiv = function(options) { // defaults var options = { 'color' : 'black' }; $(this).css('background', options.color);

这是我的代码():

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:

HTML:



现在我正在尝试学习如何在编写插件时使用选项。在我的代码中,我试图做的是指定第一个div应该是红色的,第二个div因为没有选项,所以应该是默认的黑色。然而,两者都是黑色的。我做错了什么?

您当前的方法是接受一个名为
options
的参数,然后声明另一个名为
options
的变量“隐藏”参数,因此传入的选项永远不会被后续代码看到

相反,您应该声明默认选项,然后使用覆盖用户传入的默认选项(如果适用):

$.fn.coloredDiv = function (userOptions) {
    var options = $.extend({
        color: "black"
    }, userOptions);

    // ...
};
<div id="foo"></div>
<div id="bar"></div>
$.fn.coloredDiv = function (userOptions) {
    var options = $.extend({
        color: "black"
    }, userOptions);

    // ...
};