如何正确地将onclick事件添加到JS中创建的DOM按钮元素?

时间:2019-04-22 21:01:24

标签: javascript

我正在尝试创建按钮列表,并添加onClick事件监听器,如下所示:

var buttonLabel = "Proceed";

// create button element
var bt = document.createElement('button');

// add class name to created button
bt.className = "btn btn-primary shadow-none quickRepliesButton";

// add type to created button
bt.type = "button";

// add value to created button. Value is our button label in our case
bt.value = buttonLabel;

// add onclick event listener
bt.onclick = "quickReplyPressed(this)";

// create text and add to button
document.createTextNode(buttonLabel);
bt.appendChild(document.createTextNode(buttonLabel));

以下是创建的按钮的DOM代码段:

enter image description here

使用上面的代码,我可以创建一个按钮并将其显示到UI。但是创建的按钮没有任何onclick属性。

如何将onclick事件侦听器正确添加到已创建的按钮?

谢谢。

更新:对于所有认为此问题与已标记问题重复的人,我只想通知已标记答案无效有效。可能是因为另一个问题是关于另一个问题的语境,但几乎有相同的意图。在另一个问题中,OP尝试将onclick事件侦听器添加到ALREADY现有DOM中,而我正在寻找正确的添加方式和将eventlistender添加到动态创建的DOM元素button中。顺便说一句,很抱歉,如果这很简单,但是我刚刚开始学习前端开发人员,并且基于我的在线研究和研究,我不确定如何实现我的目标。

UPDATE2 :通过引用此链接-Add onclick event to newly added element in JavaScript解决了该问题。我会说此链接是正确的“已回答链接”,而不是当前标记的链接。

1 个答案:

答案 0 :(得分:0)

bt.onclick = function() {
    quickReplyPressed(this);
};