Javascript createelement按钮不可点击

问题描述 投票:0回答:1

[您好,我正在使用JavaScript构建待办事项应用。我开始使用document.createElement来创建div和按钮,但是当我创建要删除的按钮列表时,只能单击一个用html编写的按钮并删除div,而用javascript创建的其他按钮则不能单击,请任何人告诉我如何解决

let menu = document.querySelector(".bs");
let btn1 = document.querySelector(".btn");
let btn2 = document.querySelector(".btn3");

let inp = document.querySelector(".input");
let bsd = document.querySelector(".sss");
let brs  = document.querySelector(".marker");

btn1.addEventListener("click", function(){
  
  let  br = document.createElement("DIV");
  br.className = "red";
  br.innerHTML = inp.value;
  menu.appendChild(br);
  
  let ttt = document.createElement("BUTTON");
  ttt.className = "marker";
  ttt.innerHTML = "Remove";
  br.appendChild(ttt);
  
});

brs.addEventListener("click", function(){
  
  let bred =  document.querySelector(".but");
  let drp =  document.querySelector(".red");
  bred.removeChild(drp);
  
});
.red {
  background-color: dodgerblue;
  width: 100%;
  min-height: 50px;
  display: flex;
  align-items: center;
  justify-content: space-around;
  color: white;
  margin: 30px 0;
}

.marker {
  background-color:white;
  border:none;
  padding:10px 20px;
}
<body>
  <div class="but">
    <div class="red">
      <button class="marker">Remove</button>
    </div>

    <div class="bs"></div>
  </div>
  
  <input type="text" class="input">
  <button class="btn">Add</button>

  <button class="btn3">Remove</button>
</body>

that

javascript dom
1个回答
0
投票

您需要将点击侦听器添加到“删除”按钮创建它们时

以下执行此操作:

let menu = document.querySelector(".bs");
let btn1 = document.querySelector(".btn");
let btn2 = document.querySelector(".btn3");

let inp = document.querySelector(".input");
let bsd = document.querySelector(".sss");
let brs  = document.querySelector(".marker");

let addBr = () => {
  
  let br = document.createElement("DIV");
  br.className = "red";
  br.innerHTML = inp.value;
  menu.appendChild(br);
  
  let ttt = document.createElement("BUTTON");
  ttt.className = "marker";
  ttt.innerHTML = "Remove";
  br.appendChild(ttt);
  
  // This is the important change. Part of creating the .ttt element
  // is setting up its event listeners!
  ttt.addEventListener('click', () => br.remove());
  
};

btn1.addEventListener("click", addBr);

// Call `addBr` once to add the initial element
addBr();
.red {
  background-color: dodgerblue;
  width: 100%;
  min-height: 50px;
  display: flex;
  align-items: center;
  justify-content: space-around;
  color: white;
  margin: 30px 0;
}

.marker {
  background-color:white;
  border:none;
  padding:10px 20px;
}
<body>
  <div class="but">
    <div class="bs"></div>
  </div>
  
  <input type="text" class="input">
  <button class="btn">Add</button>

  <button class="btn3">Remove</button>
</body>
© www.soinside.com 2019 - 2024. All rights reserved.