diff --git a/templates/play.html b/templates/play.html index ab635e79..1fce822e 100644 --- a/templates/play.html +++ b/templates/play.html @@ -355,10 +355,22 @@ // recrée entièrement ses nœuds à partir de leur état PAR DÉFAUT. const savedState = {}; wrapper.querySelectorAll('[data-element-id]').forEach(function(node) { + // clickBound/hoverBound/hoverTriggerBound (voir bindClicks/ + // bindHoverTexts/bindHoverTriggers) sont des indicateurs INTERNES du + // moteur, jamais un état posé par une action "Modifier un élément" — + // les restaurer sur le nœud tout neuf créé ci-dessous lui ferait + // croire à tort qu'un écouteur de clic/survol lui est déjà rattaché + // (alors qu'aucun ne l'est réellement), ce qui bloquait + // silencieusement TOUS les clics suivants sur cet élément (ex. les + // lignes d'un Répéteur voisin, une fois régénérées avec lui). + const dataset = Object.assign({}, node.dataset); + delete dataset.clickBound; + delete dataset.hoverBound; + delete dataset.hoverTriggerBound; savedState[node.dataset.elementId] = { style: node.getAttribute('style') || '', className: node.className, - dataset: Object.assign({}, node.dataset), + dataset: dataset, }; });