Jquery 插件编写:如何在代码中使用选项?

发布于 2024-12-16 19:40:50 字数 827 浏览 0 评论 0原文

所以我正在转换一个插件。最初我有一个传统的 javascript 函数,其中包含一些传入的变量,但我想让它成为一个带有选项的完整 Jquery 插件。该文档向您展示了如何设置它们,但不展示如何在代码中使用它们。这是一些代码:

jQuery.fn.placeholderRX = function(options) {
    var settings = jQuery.extend({
        hoverColor: '#fff',
        addClass: 'null',
        textColor: '#FBFBFB'        
    }, options);

    var $this = $(this);

    $this.children('.inputSpan').each(function() {      
            $(this).children('.inputText').hover( 
                function() {
                    $input.children('.input').css('background-color', hoverColor);
                },
                function() {
                    $input.children('.input').css('background-color', revertColor);
                }
            );
        }       
    });
};

我如何将该颜色选项值传递给其下面的悬停函数?或者更简单地说,我可以将选项值传递给变量吗?

So I'm converting a plugin. Originally I had a traditional javascript function with some variables I pass in, but I wanted to make it a full Jquery plugin with options. The documentation shows you how to set them up, but not how to use them in your code. Here's a bit of the code:

jQuery.fn.placeholderRX = function(options) {
    var settings = jQuery.extend({
        hoverColor: '#fff',
        addClass: 'null',
        textColor: '#FBFBFB'        
    }, options);

    var $this = $(this);

    $this.children('.inputSpan').each(function() {      
            $(this).children('.inputText').hover( 
                function() {
                    $input.children('.input').css('background-color', hoverColor);
                },
                function() {
                    $input.children('.input').css('background-color', revertColor);
                }
            );
        }       
    });
};

How would I pass that color option value to the hover function beneath it? Or more simply, can I just pass the option value to a variable?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

聚集的泪 2024-12-23 19:40:50

您已声明一个名为 settings 的变量。您可以使用 settings.hoverColor 访问该对象的 hoverColor 属性:

$input.children('.input').css('background-color', settings.hoverColor);

插件的 options 参数也将是一个对象。当您传入该值时,extend 方法将合并 options 对象和“defaults”对象的内容,并将合并结果分配给 设置

You have declared a variable called settings. You can access the hoverColor property of that object with settings.hoverColor:

$input.children('.input').css('background-color', settings.hoverColor);

The options argument to your plugin will be an object too. When you pass that in, the extend method will merge the contents of the options object and the "defaults" object, and you assign the result of that merge to settings.

街道布景 2024-12-23 19:40:50

以下应该有效:

$input.children('.input').css('background-color', settings.hoverColor);

或者 jcreamer898 所说的也有效:

$input.children('.input').css('background-color', settings['hoverColor']);

The following should work:

$input.children('.input').css('background-color', settings.hoverColor);

Or what jcreamer898 said works as well:

$input.children('.input').css('background-color', settings['hoverColor']);
凉世弥音 2024-12-23 19:40:50

这应该有效...

$input.children('.input').css('background-color', settings['hoverColor'])

This should work...

$input.children('.input').css('background-color', settings['hoverColor'])
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文