我制作了一些 jquery 插件,但它们本身并不是插件,因为它们不像普通的 jquery 插件那样被调用,而是你必须创建一个对象的新实例,添加主 div 作为第一个参数和配置对象文字作为第二个论点。
这一切对我来说都很好,但我想把它变成一个真正的 jquery 插件。
看看下面的代码:
CSS:
p {
color: red;
}
HTML:
<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/jQuery:
function changeColor() {
var self = this;
this.config = {
color: 'green'
};
};
changeColor.prototype.init = function(elem, config) {
var self = this;
this.elem = elem;
$.extend(this.config, config);
self.blueColor();
};
changeColor.prototype.blueColor = function() {
var self = this;
$(self.elem + ' p').css('color', self.config.color);
};
(function() {
// create new instances
var c1 = new changeColor();
c1.init('.p1', {
color: 'blue'
});
var c2 = new changeColor();
c2.init('.p3', {
color: 'yellow'
});
})();
我想要的是能够在同一页面中多次调用我的插件(针对不同的 div),但使用普通的 jquery 插件方式。
因此,我必须通过以下方式启动“插件”,而不是以下内容:
var c1 = new changeColor();
c1.init('.p1', {
color: 'blue'
});
我想使用:
$('.p1').init({color:'blue'});