我有以下代码,它采用单个图像并对其应用特定宽度:
function Foo ( img ) {
this.image = img;
}
Foo.prototype._getWidth = function( ) {
return this.image.data('largest') + 'px';
};
Foo.prototype.applyWidth = function( ) {
this.image.css( 'width', this._getWidth() );
};
var img = Foo( $('img') );
img.applyWidth();
但是,我正在努力解决处理 jQuery 图像集合的问题,例如$('img')
没有 for 循环或$.each()
在每个函数内部(我有超过上面显示的这两个函数)。
到目前为止,我想出的最好的是:
var temp = [];
function Create ( imgs ) {
$.each( imgs, function( i ){
temp[ i ] = new Foo ( $( this ) );
});
return temp;
}
Create( $('img') );
$.each( temp, function() {
$(this).applyWidth();
}):
这很好用,但感觉没有条理,感觉马虎。
最后,我想对以下内容进行一些指导。
我理想地希望这个在命名空间下
Theme
。我想在Theme.Images
使用模块模式下使用这种方法。这可能吗?如果在命名空间下
Theme.Images
可以进行这样的调用,它将Theme.Images.applyWidth()
调用. 目前我相信我需要循环并在循环内调用。applyWidth()
temp
img
_getWidth()
Theme.Images.temp
applyWidth()
我真的开始欣赏 javascript 中的继承点,并希望继续使用它。