javascript - 使用 addEventListener 加载 HTML 内容时出现问题

标签 javascript addeventlistener

在下面的代码中,我希望每个按钮都提醒自己的 ID。问题是在所有其他按钮中只有第一个按钮的 id 会被提醒。

document.getElementById('button').addEventListener('click', function() {
  addElement();
}, false);


function addElement() {

  di3 = rngc(10, 100001);

  document.getElementById('demo').insertAdjacentHTML('afterbegin', '<button id="' + di3 + '" type="button" >newb</button>');

  document.getElementById(di3).addEventListener('click', function() {
    al(di3);
  }, false);
}

function al(x) {
  console.log(x);
}




function rngc(A, B) {
  var d = new Date(),
    n = d.getMilliseconds();
  return 'ig' + Math.random().toString(36).replace(/[^a-z]+/g, '').substr(0, A) + Math.floor(Math.random() * (B)) + n;
}
<button id="button" type="button">add</button>
<div id="demo"></div>

注释 1:我的实际代码将许多 html 元素加载为一个字符串。 更新:我不想使用 onclick 属性; addEventListener 是我的目标。

最佳答案

您可以使用这个答案,它将解决您的问题

<script type="text/javascript">

document.getElementById('button').addEventListener('click', function() {
  addElement();
}, false);


function addElement() {

  di3 = rngc(10, 100001);

  document.getElementById('demo').insertAdjacentHTML('afterbegin', '<button id="' + di3 + '" type="button" >newb</button>');
// console.log(document.getElementById(di3).getAttribute("id"));

  document.getElementById(di3).addEventListener("click", function() { al(this.id) } , false);       
}

function al(x) {

    alert(x);
}




function rngc(A, B) {
  var d = new Date(),
    n = d.getMilliseconds();
  return 'ig' + Math.random().toString(36).replace(/[^a-z]+/g, '').substr(0, A) + Math.floor(Math.random() * (B)) + n;
}
</script>

关于javascript - 使用 addEventListener 加载 HTML 内容时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57737250/

相关文章:

javascript - 在 ASP.Net Release模式下提供内容时,Chrome 呈现不同?

javascript - 无法在 iOS 中使用 getComputedStyle 访问样式

javascript - addEventListener 无法正常工作

javascript - 如何让西蒙游戏正常运行

JavaScript AddEventListener 无法正常工作

javascript - 使用 openexchangerates API 使用 JS/JQuery 进行货币转换

javascript - 如何在 Cloud Function 中循环 Firestore 数组值

javascript - js-xlsx 中的货币格式

javascript - 无法在 addEventListener 调用的函数内调用函数

javascript - 如何在窗口监听器函数中调用 Controller 函数