函数创建按钮,带有传递参数的 onclick 函数

function create button with a passing argument onclick function

本文关键字:函数 参数 onclick 创建 按钮      更新时间:2023-09-26

有人可以像我五岁一样解释我为什么在没有单击事件的情况下执行函数。以及如何解决它。谢谢。

function test(){
    alert("works");
}
function createButton(name,location,id,funX){
    var button = document.createElement("input");
    button.type = "submit";
    button.name = name;
    button.id = id;
    button.onclick = funX;
    var placeHolder = document.getElementById(location);
    placeHolder.appendChild(button);
};

window.onload = function () {
    createButton("Submit","content","submitEnd",test());
};

http://jsfiddle.net/mabui91/yLoty39s/

向函数添加括号时,将调用它。不是以后,而是当时和那里,你返回函数返回的任何内容。

javascript 中的函数默认返回undefined,除非您显式返回其他内容。

你真正在写的是

createButton("Submit", "content", "submitEnd", undefined);

最后一个undefined是因为您调用了该函数,它将与

var result = test(); // undefined
createButton("Submit", "content", "submitEnd", result);

解决它的方法,是引用函数,而不是调用它

createButton("Submit", "content", "submitEnd", test);

看,没有括号。

小提琴