我正在div中创建ap元素(我们称其为“ test-div”),我想在其上添加onclick事件,我可以给它提供一个类和一个id,但是在添加一个onclick。它说它的类型是void。我的代码基本上是这样的:
var son = document.createElement("p");
var node = document.createTextNode("test");
son.appendChild(node);
var father = document.getElementById("test-div");
father.appendChild(son);
son.className = "son-class";
son.id="son-id";
son.onclick= sonFunction(randomVar); //Type 'void' is not assignable error
答案:son.addEventListener(“ click”,function(){sonFunction(randomVar)});
答案 0 :(得分:0)
您正在尝试更改期望字符串的onclick
属性,并为其分配sonFunction
的返回值,而该返回值没有返回值,因此(void
)
您可以使用诸如以下的字符串设置onclick
属性:
son.onclick = 'sonFunction(randomVar);';
这样做将为您提供类似于以下内容的HTML输出:
<p class="son-class" onclick="sonFunction(randomVar);">
...
</p>
但是,您可能要为其分配一个事件侦听器,单击该事件侦听器将触发该事件。执行以下操作不会在HTML中添加onclick
属性,但是会将侦听器保留在Javascript编译器中。这样做通常被称为“不打扰”的Javascript,因为Javascript代码未嵌入HTML中。
function sonFunction() {
// something here
};
son.addEventListener('click', sonFunction);
或
son.addEventListener('click', function () {
// something here
});