我想写一个可以按以下方式使用的插件:
var img = $('#someImage').Image();
或者也许:
var img = $.Image({id: 'someImage', src: '/...'});
然后能够做与图像相关的功能:
img.highlight();
img.showAlter();
等等。但是,我不想这样做:
$.fn.highlight = function() {}
因为那将适用于所有jQuery对象,我希望我的方法只应用于我称之为.Image()的那些对象。
是我要求的可能吗?如何?
答案 0 :(得分:1)
您需要将Image
功能放在原型(fn
)上,然后让Image
插件分配highlight
和showAfter
函数调用.Image()
的特定jQuery对象。
(function( $ ) {
$.fn.Image = function( props ) {
this.highlight = function(){
this.each(function() {
$(this).css('border', "5px dashed yellow");
});
};
this.showAfter = function(){};
return this;
};
})( jQuery );
var img = $('img').Image();
img.highlight();
编辑:
为了澄清,this
函数中的Image
是对调用Image()
的jQuery对象的引用。
this
不以任何方式引用Image
函数。
答案 1 :(得分:0)
$。fn.image.highlight = function(){}
假设你已经编写了一个名为image的插件,这将把高亮函数原型化为该对象