jquery - 用于更改背景颜色的基本 jQuery 插件

标签 jquery jquery-plugins

我是一名正在尝试 jQuery 插件开发的新手。 我正在尝试从外部 js 文件(一个小插件)更改背景颜色 控制台显示“未捕获类型错误:对象#没有方法‘css’” 如果我完全脱离了轨道,请原谅我。

HTML

<button id="clicker">change</button>
<div id='ra'>Box</div>​

CSS

#ra {
    height:100px;
    width:100px;
    background-color: #DDD;
}​

JS

var $ra = $('#ra');
$('#clicker').on('click',function(){
    $ra.change()
});    ​

这是我的插件。

function( $, window, document, undefined ) { 
    $.fn.change = function( options ) {
        return this.each (function() { 
            this.css('background-color','rgba(52,36,42,0.2)');
        });
    };
})( jQuery, window, document );

最佳答案

each 循环内,this 指的是 native DOM 节点,而不是 jQuery 对象。您需要将其传递到 jQuery:

return this.each (function() { 
    $(this).css('background-color','rgba(52,36,42,0.2)');
});

另请注意,在您的问题中,插件代码缺少左括号。我猜这只是将代码复制并粘贴到您的问题中的错误。

这是一个working example .

关于jquery - 用于更改背景颜色的基本 jQuery 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10739274/

相关文章:

javascript - 向上滑动 div 以使用 jQuery 匹配其新内容

javascript - 当我将鼠标悬停在另一个 div 上时,使用效果更改标题图像

jQuery 占位符,在键入文本之前显示占位符

javascript - jQuery Star Rating Plugin 如何在点击事件中从禁用切换到启用

javascript - 为什么 AJAX 的响应为 "_blank"对第一个函数起作用,但对第二个函数不起作用?

javascript - 将元素分配给变量

javascript - 为什么 jQuery UI 布局在 Adob​​e AIR 中运行得这么慢?

javascript - 如何在 jQuery 中声明这个函数? $(document).ready 不起作用

javascript - 切换函数 Javascript

javascript - jQuery 插件 - 从插件内调用公共(public)方法