我使用hyperHTML(可能只有一些理解問題)存在一些問題。hyperHTML:循環中的通用內容總是呈現完整並丟失它的綁定(單擊事件)
當我在一個循環中有動態內容時,內容被完全渲染並丟失它的綁定(如document.body.innerHTML = content
,這不是hyperHTML的想法,不是嗎?)。請參閱我下面的例子:
function render() {
console.log('render');
hyperHTML.bind(document.body) `start:<br>
${[1,2,3].map(item => `
count <button id="testbutton${item}">button${item}</button><br>
`)}<br>
press button2<br>
<button id="testbutton">Test Button</button><br>
last rendering ${new Date().toTimeString()}`;
}
function init() {
render();
let self = this;
document.querySelector('#testbutton2').addEventListener('click',() => self.render());
document.querySelector('#testbutton').addEventListener('click',() => self.render());
}
window.addEventListener('load',() => init());
<script src="https://webreflection.github.io/hyperHTML/min.js"></script>
點擊被呈現的內容第一次button2
。初始綁定仍然有效。內容再次呈現後,監聽器丟失。
另一方面,Test Button
不會再次呈現。綁定仍然存在。
有人可以解釋我,如何通過遍歷列表以正確的方式使用hypeHTML。
謝謝, 的Matthias
嗨安德烈, 非常感謝您的反饋意見和您在Code Pen上的傑出範例。現在很明顯:-) –
https://codepen.io/janat08/pen/wpWgbO 我試圖在每次更新之前更改數組,沒有好的東西出來。 –