Javascript OnClickListener Function Triggered Immediately
When attempting to create an anchor tag that mimics the appearance of a traditional link but triggers a function rather than redirecting to a new page, the onclick function is invoked upon creating the link, regardless of user input. This prevents any subsequent manual clicking of the link.
The issue lies in the improper implementation of the onclick function. Instead of assigning the actual function itself (secondFunction()), the correct syntax is to reference the function (secondFunction). This ensures that the function is only called when the onclick event occurs, not upon its declaration.
To rectify this, replace:
<code class="javascript">sentNode.setAttribute('onclick', secondFunction());</code>
with:
<code class="javascript">sentNode.onclick = secondFunction();</code>
This will pass a reference to the secondFunction function, enabling it to be called when clicked. The corrected code should appear as follows:
<code class="javascript">function startFunction() { var sentNode = document.createElement('a'); sentNode.setAttribute('href', "#"); sentNode.onclick = secondFunction; // Assign the function reference sentNode.innerHTML = "Sent Items"; //Add new element to parent var parentNode = document.getElementById('parent'); var childNode = document.getElementById('sendNode'); parentNode.insertBefore(sentNode, childNode); }</code>
By following these steps, the onclick function will be correctly assigned, allowing the link to function as intended without immediate invocation upon its creation.
The above is the detailed content of How to Prevent Immediate Invocation of Javascript OnClickListener Function during Anchor Tag Creation?. For more information, please follow other related articles on the PHP Chinese website!