小さな jquery プラグインを作成しようとしていますが、問題は、いくつかの異なる div に対してそれを数回呼び出すと、最後の呼び出しが他のすべての呼び出しを無効にし、各 div で最後の結果を取得することです。
<div class="p1"><p>text 1</p></div>
<div class="p2"><p>text 2</p></div>
<div class="p3"><p>text 3</p></div>
JS:
var changeColor = {
init: function(options, elem) {
var self = this;
self.elem = elem;
self.options = $.extend( {}, $.fn.changeColor.options, options );
self.blueColor();
},
blueColor: function() {
var self = this;
$('p').css('color', self.options.color);
}
};
$.fn.changeColor = function( options ) {
return this.each(function() {
var color = Object.create( changeColor );
color.init( options, this );
$.data( this, 'changeColor', color );
});
};
$.fn.changeColor.options = {
color: 'green'
};
(function() {
$('.p1').changeColor({color: 'yellow'});
$('.p2').changeColor({color: 'blue'});
})();
これ<p>
で、両方の div の両方が青になり、最初の 1 つが黄色で 2 つ目の青が青になります。