ho dovuto eseguire un compito simile wi un plugin jQuery che ho creato. Mantiene lo stato per un valore di testo di input, ma il principio potrebbe essere facilmente utilizzato per la larghezza e l'altezza.
Vorrei creare un oggetto personalizzato che memorizza l'ID, la larghezza e l'altezza dell'oggetto originale. Questo oggetto viene quindi inserito in una matrice. Quando è necessario ripristinare il valore, è sufficiente eseguire il ciclo della matrice di oggetti personalizzati per abbinarli a ID e bingo, un oggetto con larghezza e altezza originali.
È possibile controllare il codice del mio plug-in a www.wduffy.co.uk/jLabel per vedere come l'ho implementato. A seconda di quante immagini si stanno modificando, la matrice potrebbe diventare un po 'troppo pesante.
Un esempio potrebbe essere simile
var states = new Array();
function state($obj) {
// Public Method: equals
this.equals = function($obj) {
return $obj.attr('id') == this.id;
};
// Public Properties
this.id = $obj.attr('id');
this.width = $obj.attr('width');
this.height = $obj.attr('height');
};
function getState($obj) {
var state;
$.each(states, function() {
if (this.equals($obj)) {
state = this;
return false; // Stop the jQuery loop running
};
});
return state;
};
proprio come una piccola nota, è possibile utilizzare questo: attr ({height: 150, width: 150, title: '', name: '', 'id': 'id' + i); e così via. –
Possibile duplicato di [C'è un modo per leggere la "larghezza naturale" di un'immagine con jquery?] (Http://stackoverflow.com/questions/1832907/is-there-any-way-to-read-out- the-naturalwidth-of-an-image-with-jquery) – Darvanen