【发布时间】:2021-10-20 01:58:04
【问题描述】:
我有一个第一个函数,它有另一个函数作为参数。这个函数创建了一个必须具有 onclick 属性的 DOM 元素,这个参数函数来自第一个函数!就像这样:
function funcOne(name,callback) {
let button = document.createElement("button");
button.setAttribute("id","myBtn");
button.innerHTML = "Go to Func 2";
button.setAttribute("onclick","funcTwo(this,'"+name+"','"+callback+"')");
document.body.appendChild(button);
}
function funcTwo(element,name,callback) {
let elementId = element.id;
let yourName = name;
console.log(yourName);
callback();
}
funcOne('John',function(){alert('Holly cow!');});
我相信,错误发生在“setAttribute”时刻! 我看到的唯一解决方案是设置:
globalThis.myGlobalCallback= callback;
funcOne 内部。所以我可以从 funcTwo 调用“myGlobalCallback()”,并在元素创建期间取消使用 setAttribute 数据! (因为我只能设置 ("onclick","myGlobalCallback()"); 但这不是最好的方法,是吗?
感谢您的帮助!
【问题讨论】:
标签: javascript