Javascript onclick 函數在頁面載入時神祕地觸發
onclick 事件偵聽器應該只在點擊關聯元素時執行。然而,在某些場景下,可以觀察到該函數在頁面載入後立即被調用,導致點擊事件無效。
將 onclick 屬性指定為 setAttribute('onclick', secondaryFunction 時通常會出現此問題()) 而不是 setAttribute('onclick', secondaryFunction)。前者直接執行函數,後者將其註冊為事件處理程序。
正確用法:
<code class="javascript">// Create a new element with an onclick event listener var sentNode = document.createElement('a'); sentNode.setAttribute('href', "#"); sentNode.setAttribute('onclick', secondFunction);</code>
錯誤用法:
<code class="javascript">// Immediately executes the function upon loading the page sentNode.setAttribute('onclick', secondFunction());</code>
關鍵區別位於第二個函數附加的括號中。透過省略它們,程式碼將事件處理程序定義為對函數的引用,從而允許在單擊元素時執行它。相反,包含括號會立即觸發函數的執行。
透過遵循正確的用法,onclick 事件將按預期運行,等待呼叫關聯元素的點擊。
以上是如何防止頁面載入時神秘的 Onclick 執行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!