是否立即调用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);
}