猿问

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

我试图创建一个看起来和感觉像<a>标签项的链接,但运行一个函数而不是使用href。


当我尝试将onclick函数应用于链接时,无论该链接从未被单击过,它都会立即调用该函数。此后任何尝试单击链接的尝试都会失败。


我究竟做错了什么?


的HTML


<div id="parent">

    <a href="#" id="sendNode">Send</a>

</div>

Java脚本


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函数的不同方法,两种方法都具有相同的效果。


婷婷同学_
浏览 603回答 1
1回答

梵蒂冈之花

你要 .onclick = secondFunction不 .onclick = secondFunction()后者调用(执行),secondFunction而前者secondFunction在onclick事件传递给要调用的的引用function start() {&nbsp; var a = document.createElement("a");&nbsp; a.setAttribute("href", "#");&nbsp; a.onclick = secondFunction;&nbsp; a.appendChild(document.createTextNode("click me"));&nbsp; document.body.appendChild(a);}function secondFunction() {&nbsp; window.alert("hello!");}start();您也可以使用elem#addEventListenera.addEventListener("click", secondFunction);// ORa.addEventListener("click", function(event) {&nbsp; secondFunction();&nbsp; event.preventDefault();});
随时随地看视频慕课网APP
我要回答