Tôi có đoạn code sau mà phải mất một hình ảnh duy nhất và áp dụng một chiều rộng cụ thể với nó:jQuery bộ sưu tập, chức năng và tổ chức
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();
Tuy nhiên tôi đang đấu tranh để có được đầu của tôi xung quanh việc xử lý một bộ sưu tập jQuery hình ảnh, chẳng hạn như $('img')
không có vòng lặp for hoặc $.each()
bên trong mỗi hàm (tôi có nhiều hơn hai hàm này được hiển thị ở trên).
Cho đến nay các tốt nhất mà tôi đã đưa ra là:
var temp = [];
function Create (imgs) {
$.each(imgs, function(i){
temp[ i ] = new Foo ($(this));
});
return temp;
}
Create($('img'));
$.each(temp, function() {
$(this).applyWidth();
}):
này hoạt động tốt, nhưng nó không cảm thấy tổ chức, cảm thấy luộm thuộm.
Cuối cùng, tôi muốn một số hướng dẫn về những điều sau đây.
Tôi lý tưởng muốn điều này dưới không gian tên
Theme
. Tôi muốn phương pháp này dướiTheme.Images
sử dụng mẫu mô-đun. Điều này có thể không?Nếu dưới namespace
Theme.Images
nó sẽ có thể thực hiện cuộc gọi nhưTheme.Images.applyWidth()
rằng sẽ gọiapplyWidth()
trên tất cả các hình ảnh trongtemp
, mang trong tâm trí mỗiimg
sẽ có một giá trị duy nhất cho_getWidth()
. Tại thời điểm này tôi tin rằng tôi sẽ cần phải lặp lạiTheme.Images.temp
và gọiapplyWidth()
bên trong vòng lặp.
Tôi thực sự bắt đầu đánh giá cao điểm kế thừa trong javascript và muốn tiếp tục với nó.
Cảm ơn bạn đã trả lời rõ ràng, đã xóa bỏ sự hiểu biết mờ của tôi rất tốt. – mikedidthis
Không sao cả. Rất vui được trợ giúp @mikedidthis^_ ^ – Neal