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,
};
});