J'ai un conteneur div dans lequel plusieurs plages sont déplaçables. Je veux construire une fonction UNDO pour eux. Je pense à:jQuery et HTML5 Changement DOM Fonction UNDO
- lorsque les attributs de portée sont modifiés (position, css) le script détecte un changement DOM
- le changement DOM est stocké via HTML5 localStorage
- Lorsque la fonction UNDO est appelée la dernière version du DOM remplacer le courant.
J'ai le code localStorage de base qui enregistre le dernier état DOM:
$('#undo').live('click', function() {
var testObject = $('#container').html();
// Put the object into storage
localStorage.setItem('testObject', JSON.stringify(testObject));
// Retrieve the object from storage
var retrievedObject = localStorage.getItem('testObject');
alert(retrievedObject);
// retrievedObject should now replace the current DOM
});
});
dès maintenant ce code ne prend que les DOM actuel et le stocke. L'alerte affiche ce qui est dans le localstorage. Je devrais probablement essayer de stocker plusieurs états DOM et les mettre dans des variables. Après cela, sur chaque UNDO, pour supprimer une variable ... Je ne suis pas sûr que ce soit la façon de le faire.
Des entrées sur celui-ci? Merci
Dans le #container, il y aura des travées qui peuvent être modifiées par l'utilisateur (position, couleur, taille). Ce ne sera pas très "lourd". Je veux utiliser localStorage car il est plus rapide qu'un serveur Ajax. Je ne suis pas vraiment intéressé par la fonction de stockage local réelle, travaillant dans des onglets croisés, je veux juste l'utiliser comme un espace de stockage. Je ne connais pas UNDO par défaut du navigateur. Si je parviens à créer une série de variables alors oui, la fonction aura une pile d'annulation. – Mircea
Je comprends que vous ne voulez pas utiliser le "serveur" Ajax, mais est-il votre intention que la possibilité de "UNDO" est locale pour le navigateur particulier? – Detro