Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否立即调用Javascript onclick函数(不是在单击时)?_Javascript_Html_Onclick - Fatal编程技术网

是否立即调用Javascript onclick函数(不是在单击时)?

是否立即调用Javascript onclick函数(不是在单击时)?,javascript,html,onclick,Javascript,Html,Onclick,我正在尝试创建一个链接,它看起来和感觉都像 正如您所看到的,我尝试了两种不同的方法来添加这个onclick函数,这两种方法都具有相同的效果。您需要。onclick=secondFunction 不是.onclick=secondFunction() 后者调用(执行)secondFunction,而前者传递对secondFunction的引用,以便在onclick事件中调用 函数开始(){ var a=document.createElement(“a”); a、 setAttribute(

我正在尝试创建一个链接,它看起来和感觉都像


正如您所看到的,我尝试了两种不同的方法来添加这个onclick函数,这两种方法都具有相同的效果。

您需要
。onclick=secondFunction

不是
.onclick=secondFunction()


后者调用(执行)
secondFunction
,而前者传递对
secondFunction
的引用,以便在
onclick
事件中调用


函数开始(){
var a=document.createElement(“a”);
a、 setAttribute(“href”、“#”);
a、 onclick=secondFunction;
a、 appendChild(document.createTextNode(“单击我”);
文件.正文.附件(a);
}
函数secondFunction(){
window.alert(“你好!”);
}

start()
因为您立即调用它
secondFunction()
,要传递函数,只需使用其名称
secondFunction
,这是函数调用与函数引用的问题。更多信息:@PatrickEvans这是我最初的想法,但这样做根本不会运行该功能。然后你需要查看控制台中的错误,例如,您的JSFIDLE抛出了一个错误,因为您已将其设置为在头部执行代码,而不是使用dom就绪事件,如onload@leigero-JS FIDLE中的代码与此answer@leigero:你的小提琴当然不行了。但是答案是有效的。@leigero是的,它确实有效。请参阅附加的代码片段。谢谢。愚蠢的错误,只是因为试图在JSFIDLE中排除故障而变得复杂。
<div id="parent">
    <a href="#" id="sendNode">Send</a>
</div>
startFunction();

function secondFunction(){
    window.alert("Already called!?");
}

function startFunction() {
    var sentNode = document.createElement('a');
        sentNode.setAttribute('href', "#");
        sentNode.setAttribute('onclick', secondFunction());
      //sentNode.onclick = secondFunction();
        sentNode.innerHTML = "Sent Items";

    //Add new element to parent
    var parentNode = document.getElementById('parent');
    var childNode = document.getElementById('sendNode');
    parentNode.insertBefore(sentNode, childNode);
}