Javascript 按钮上的侦听器不工作
我创建了这个片段:Javascript 按钮上的侦听器不工作,javascript,dom,event-listener,tampermonkey,Javascript,Dom,Event Listener,Tampermonkey,我创建了这个片段: function addClick(button, container) { console.log("In add click"); const data = container.nextElementSibling.childNodes[0].innerHTML; button.addEventListener('click', ()=>{ alert('clicked') console.
function addClick(button, container) {
console.log("In add click");
const data = container.nextElementSibling.childNodes[0].innerHTML;
button.addEventListener('click', ()=>{
alert('clicked')
console.log("Clicked");
})
}
function createCopyButtons(array){
array.forEach(element => {
const container = document.createElement('div');
const button = document.createElement('button');
button.innerHTML = "Copy"
styleContainer(container);
styleButton(button, element);
stylePrevious(element);
container.innerHTML = element.outerHTML + button.outerHTML;
element.parentNode.replaceChild(container, element);
addClick(button, container);
});
}
现在在这里,数组是DOM元素的数组,我希望应用这个属性,然后我调用createCopyButtons()函数并添加一些其他内容。现在的问题是,此事件侦听器不适用或不工作。我试图等待文档被这些答案加载,然后才应用我的javascript片段,但事件侦听器似乎无法工作
document.addEventListener("DOMContentLoaded", function(event) {
//do work
});
if (document.readyState == "complete") {
// document is ready. Do your stuff here
}
请提供帮助。更新:
功能添加点击(按钮){
按钮。addEventListener('单击',()=>{
控制台日志(“单击”);
})
}
设p=document.querySelectorAll('p');
//innerHTML不起作用
让btn1=document.createElement('button');
btn1.innerHTML=“不工作”;
p[0].innerHTML=btn1.outerHTML;
添加单击(btn1)
//工作
设btn2=document.createElement('button');
btn2.innerHTML=“工作”;
p[1].appendChild(btn2);
添加单击(btn2)
先生,这不像是我在容器上添加了按钮,然后添加到DOM,然后我已经有了对对象按钮的引用,所以我获取该引用并设置属性onclick?为什么错了?请重新阅读我答案中的第一段,换句话说,您需要像container.appendChild(按钮)
来制作addClick(按钮,容器)代码>工作很抱歉,但我还是不明白。如果我把它作为一个内部html并绑定一个事件监听器,那么我做错了什么?如果你把它作为一个内部html,它只复制一个元素的文本,而不复制事件监听器。答案更新了,我在上面加了一个例子。谢谢你,先生。