addEventListener不适用于动态创建的按钮

费戈索

我正在动态创建3个按钮。现在,我需要添加一个onclick事件。如何使onclick工作?

var btns='';
var category = ["fur_", "fts_", "fas_"];
for(i = 1; i < category.length; i++){
    btns +='<button type="button" class='+category[i]+' id= "myBtn'+i+'">Button</button>';
}
document.getElementById('div').innerHTML = btns;


var button = document.getElementById('myBtn1');
button.addEventListener('click', function () {
     alert('Clicked');
}, false);
阿伦·P·约翰尼

您可以获取所有按钮元素,并使用循环添加click事件处理程序。

var btns = '';
var category = ["fur_", "fts_", "fas_"];
for (i = 1; i < category.length; i++) {
    btns += '<button type="button" class=' + category[i] + ' id= "myBtn' + i + '">.....</button>';
}
var div = document.getElementById('div');
div.innerHTML = btns;

var handler = function () {
    alert('Clicked');
};
var buttons = div.querySelectorAll('button');
for (var i = 0; i < buttons.length; i++) {
    buttons[i].addEventListener('click', handler, false);
}

演示:小提琴


另一种方法是在循环中创建一个按钮元素

var div = document.getElementById('div');
var btn;
var category = ["fur_", "fts_", "fas_"];
var handler = function () {
    alert('Clicked');
};
for (var i = 1; i < category.length; i++) {
    btn = document.createElement('button');
    btn.cassName = category[i];
    btn.cassName = 'myBtn' + i;
    btn.innerHTML = '....';
    btn.addEventListener('click', handler, false);
    div.appendChild(btn);
}

演示:小提琴

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

单击事件不适用于动态创建的按钮

来自分类常见问题

jQuery-Click事件不适用于动态创建的按钮

来自分类Dev

Click事件不适用于动态添加的按钮

来自分类Dev

单击事件不适用于动态添加的按钮或面板

来自分类Dev

onclick 不适用于动态添加的按钮

来自分类Dev

Twitter Typeahead不适用于动态创建的输入

来自分类Dev

验证不适用于动态创建的值

来自分类Dev

动态创建的元素内的指令不适用于angularjs

来自分类Dev

搜索不适用于动态创建的行

来自分类Dev

静音不适用于动态创建的视频

来自分类Dev

悬停操作不适用于动态创建的UL

来自分类Dev

动态创建的元素内的指令不适用于angularjs

来自分类Dev

CSS不适用于动态创建的html

来自分类Dev

单击功能不适用于动态创建的元素

来自分类Dev

搜索不适用于动态创建的行

来自分类Dev

jQuery scrollTop 不适用于动态创建的 textarea

来自分类Dev

CSS 不适用于动态创建的内容 [jQuery]

来自分类Dev

addEventListener不适用于多个链接

来自分类Dev

spannablestring不适用于以编程方式创建的按钮

来自分类Dev

slick插件不适用于动态创建的内容,但适用于静态内容

来自分类Dev

重塑(#)不适用于动态参数

来自分类Dev

jQuery .on不适用于动态内容

来自分类Dev

buttonset()不适用于动态输入

来自分类Dev

onclick不适用于按钮输入

来自分类Dev

VBA的getElementById不适用于按钮

来自分类Dev

jQuery不适用于按钮事件

来自分类Dev

按钮悬停不适用于透明

来自分类Dev

HorizontalScrollView 不适用于按钮

来自分类Dev

document.addEventListener不适用于加载事件