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

时间:2012-05-24 14:15:53

标签: jquery jquery-plugins

是一个尝试jQuery插件开发的新手。 我试图从外部js文件(一个小插件)更改背景颜色 控制台说"未捕获TypeError:对象#没有方法' 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 );

1 个答案:

答案 0 :(得分:2)

each循环中,this指的是本机DOM节点,而不是jQuery对象。你需要将它传递给jQuery:

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

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

这是working example