Bonjour;
Je fais appel à vos avis; expériences.
Lorsqu'on crée un calendrier ou un autocomplete (par exemple), l'objet javascript est lié à un element du DOM (imaginons un input).
Je fonctionne avec prototype mais c'est une question est indépendante de l'utilisation d'un framework.
Ce dont je parle:
Par exemple, on instancie l'objet :
monCalendrier = new MaClasse('id-element');
Dans ce cas, vous serez d'accord que l'objet monCalendrier sera lié en fait à l'element "id-element"; il gerera les evenements etc...
Pour supprimer l'objet, il suffit de faire:
monCalendrier = null;
Mise en situation:
Imaginons qu'un element du DOM (genre un input) est situé dans une DIV.
Imaginons qu'un objet soit instancié est qu'il utilise l'element "input" de l'exemple.
1 2 3 4 5 6 7
| <div id="madiv1">
blabla
<div id="madiv2">
blablabla !
<input type="text" id="id-element" />
</div>
</div> |
Le probleme
Lorsqu'on change dynamiquement le contenu de la div (innerHTML) et que l'élément "input" n'est plus présent, l'objet est par contre toujours présent alors qu'il n'est plus utile...
Si vous faites l'opération plusieurs fois, vous aurez plusieurs objets inutiles.
La question:
J'aimerais pouvoir supprimer l'objet JS lorsque l'element est viré du DOM mais de manière automatique.
Mes pistes:
- tout de meme exectuer la ligne lorsque je change le contenu d'une des DIV parentes:
C'est relativement lourd vu qu'il faut alors executer la ligne pour une modification du contenu de tous les parents de l'élément (input).
- simuler un evenement "ondestroy" sur le input ? (aucune idée plus détaillée)
- attacher l'objet à l'input (du style de jquery.data) avec un object de gestion de données. il suffirait ainsi de parcourir les elements enfants contenus dans la zone à supprimer du DOM. (cela me semble le plus simple)
Je recherche une bonne piste; une bonne idée; je ne demande pas nécéssairement une solution toute faite (enfin, sauf si vous en avez une).
Merci beaucoup;
Partager