ho il seguente codice che prende una singola immagine e applica una larghezza specifica ad esso:jQuery collezioni, la funzione e l'organizzazione
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();
Comunque io sto lottando per ottenere la mia testa intorno gestire una raccolta jQuery di immagini, come $('img')
senza un ciclo for o $.each()
all'interno di ciascuna delle funzioni (ho più di queste due funzioni mostrate sopra).
Finora il migliore che abbia venire in mente è:
var temp = [];
function Create (imgs) {
$.each(imgs, function(i){
temp[ i ] = new Foo ($(this));
});
return temp;
}
Create($('img'));
$.each(temp, function() {
$(this).applyWidth();
}):
Questo funziona bene, ma non si sente organizzati, si sente sciatta.
Infine, vorrei alcune indicazioni su quanto segue.
Preferisco idealmente questo sotto lo spazio dei nomi
Theme
. Mi piacerebbe questo metodo sottoTheme.Images
utilizzando il modello del modulo. È possibile?Se sotto il namespace
Theme.Images
sarebbe possibile effettuare una chiamata comeTheme.Images.applyWidth()
tale da richiedereapplyWidth()
su tutte le immagini intemp
, tenendo presente ogniimg
avrebbe un valore univoco per_getWidth()
. Al momento credo che avrei bisogno di fare il cicloTheme.Images.temp
e chiamare il numeroapplyWidth()
all'interno del ciclo.
Sto davvero iniziando ad apprezzare il punto di ereditarietà in javascript e vorrei continuare con esso.
Grazie per la risposta chiara, schiarisce la mia comprensione sfocata molto bene. – mikedidthis
Nessun problema. Felice di aiutare @mikedidthis^_ ^ – Neal