Skip to content

Commit 96d404e

Browse files
committed
issue-1017 Preserve event handlers by using insertAdjacentElement for preamble
1 parent e5326cb commit 96d404e

1 file changed

Lines changed: 5 additions & 2 deletions

File tree

bases/rsptx/interactives/runestone/common/js/runestonebase.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -662,8 +662,11 @@ class AutoQueue extends Queue {
662662
);
663663
if (qq.preamble) {
664664
await MathJax.typesetPromise([qq.preamble])
665-
item.component.innerHTML = "<div>" +
666-
qq.preamble.innerHTML + "</div>" + item.component.innerHTML;
665+
// Use insertAdjacentElement to preserve existing DOM elements and event listeners
666+
// instead of overwriting innerHTML which destroys event handlers
667+
let preambleDiv = document.createElement("div");
668+
preambleDiv.innerHTML = qq.preamble.innerHTML;
669+
item.component.insertAdjacentElement("afterbegin", preambleDiv);
667670
console.log(
668671
`MathJax typeset the preamble for ${item.component.id}`
669672
);

0 commit comments

Comments
 (0)