【发布时间】:2021-02-08 19:52:46
【问题描述】:
我最近正在创建一个 Javascript 框架,但我遇到了两个我完全不理解的问题。当我在 Javascript 中使用createElement() 创建一个新按钮时,我不能同时将它放在多个元素中而不杀死“点击”事件(如果这是一个id,它可以工作)。
(注意:"button.onclick = function()" 也不起作用)
这是代码:(我不想使用任何库)
function createButton() {
var button = document.createElement("button");
button.innerHTML = "YOOOO";
button.style.backgroundColor = "red";
button.style.color = "white";
// Problem Two : If I click on the button, nothing happends
button.addEventListener("click", function(e) {
alert(e.target);
}, false);
var clas = document.getElementsByClassName("test");
Array.from(clas).forEach(element => {
element.appendChild(button);
element.innerHTML += ""; // First problem : If I don't do this, the button does not appear in the first div. I have no idea why !
});
}
createButton();
body {
margin: 0;
padding: 0;
display:flex;
justify-content: center;
align-items: center;
height: 100vh;
background-color: rgba(30, 30, 30, 0.2);
}
button {
cursor: pointer;
width: 80px;
height: 50px;
padding: 10px;
}
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>bug</title>
</head>
<body>
<div class="test" id="1" style="padding: 50px;">
<span>1</span>
</div>
<div class="test" id="2" style="padding: 50px;">
<span>2</span>
</div>
</body>
</html>
【问题讨论】:
标签: javascript html addeventlistener createelement