www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit adca7665b3f777eb8edcbfcf6511c8250514bbef
parent 1cf11cd1f67b40768582604c8a4801aac79b29c2
Author: Georges Dupéron <jahvascriptmaniac+github@free.fr>
Date:   Sun, 12 Sep 2010 22:07:12 +0200

Mise à jour de la vue lors de la suppression de noeuds + vérification des indices pour l'insertion et la suppression.

Diffstat:
Mediteur.js | 15++++++++++++++-
Mtodo | 5+++--
2 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/editeur.js b/editeur.js @@ -4,6 +4,14 @@ $(function() { }); }); +function inRange(x, min, max) { + if (typeof x != "number") { + return 0; + } else { + return Math.min(Math.max(min,x), max); + } +} + Object.keys = function(object) { var keys = []; for (var k in object) { @@ -92,9 +100,12 @@ $.fn.extend({ } else if (position >= html.children().size()) { v.appendTo(html); } else { - v.insertAfter(html.children().eq(position)); + v.insertBefore(html.children().eq(position)); } }); + modèle.supprimerEnfant.ajouterÉcouteur(function(position) { + html.children().eq(position).remove(); + }); return this; }, bindText: function(valeur) { @@ -307,6 +318,7 @@ var créerDocument = function(schémasTypesNoeud) { insérerEnfant: function(noeud, position) { if (noeud.parent() !== null) noeud.supprimer(); + position = inRange(position, 0, privé_enfants.length); privé_enfants.splice(position, 0, noeud); // noeud.setParent() doit être appellé après l'insertion // car setParent vérifie qu'on est bien le parent. @@ -314,6 +326,7 @@ var créerDocument = function(schémasTypesNoeud) { écoutableInsérer.déclencherÉcouteurs(noeud, position); }, supprimerEnfant: function(position) { + position = inRange(position, 0, privé_enfants.length - 1); var e = privé_enfants.splice(position, 1)[0]; e.setParent(null); écoutableSupprimer.déclencherÉcouteurs(position); diff --git a/todo b/todo @@ -16,4 +16,5 @@ Utiliser LESS au lieu de CSS : http://github.com/cloudhead/less.js/tree/master/d Court-terme : -noeud.insérerEnfant(n,pos) doit vérifier que pos n'est pas > nbEnfants et pas < 0 -\ No newline at end of file +noeud.insérerEnfant(n,pos) doit vérifier que pos n'est pas > nbEnfants et pas < 0 . Idem pour supprimer. +Libérer les ressources en arrêtant d'écouter la suppression des enfants quand on est supprimé. +\ No newline at end of file