2

jQuery プラグインの開発を試みている初心者です。外部の js ファイル (小さなプラグイン) から背景色を変更しようとしています。コンソールに「Uncaught TypeError: Object # has no method '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 );
4

1 に答える 1

2

eachループ内thisでは、jQuery オブジェクトではなく、ネイティブ DOM ノードを参照します。jQuery に渡す必要があります。

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

また、質問では、プラグイン コードに左括弧がないことに注意してください。コードをコピーして質問に貼り付けるのは間違いだと思います。

これが実際のです。

于 2012-05-24T14:17:59.570 に答える