【发布时间】:2021-03-07 00:41:48
【问题描述】:
我正在尝试创建一个链接,它看起来和感觉都像 <a> 标记项,但运行的是一个函数而不是使用 href。
当我尝试将 onclick 函数应用于链接时,它会立即调用该函数,而不管链接从未被点击过。此后任何点击链接的尝试都会失败。
我做错了什么?
HTML
<div id="parent">
<a href="#" id="sendNode">Send</a>
</div>
Javascript
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);
}
如你所见,我尝试了两种不同的方法来添加这个 onclick 函数,这两种方法的效果都是一样的。
【问题讨论】:
-
因为你是立即调用它
secondFunction(),传递一个函数你只需使用它的名字secondFunction -
这是一个函数调用与函数引用的问题。更多信息:stackoverflow.com/questions/11757075/…
-
@PatrickEvans 这就是我最初的想法,但这样做根本不会运行该功能。
-
然后你需要查看你的控制台是否有错误,例如你的 jsfiddle 会抛出一个错误,因为你已经将它设置为让你的代码在头部执行而不是使用像 onload 这样的 dom 就绪事件
标签: javascript html onclick