<p>
<p>
內聯 onclick屬性與事件偵聽器
<p>許多開發人員喜歡使用內聯事件處理程序來簡化和易於調試,如下所示code:
<p>不過一般建議使用事件監聽器<p>
事件監聽器的優點<p>事件監聽器的主要優點在於分離表示和邏輯。內嵌事件處理程序直接將程式碼嵌入 HTML 中,這可能會使程式碼庫不必要地混亂且難以維護。 <p>內嵌事件處理程序的評估會出現一個更重要的問題。這些事件處理程序存取其祖先元素和元素本身的屬性,即使根據作用域規則不應進行此類存取。 <p>例如,請考慮以下HTML:
<form>
<input name="foo" />
<button type="button" onclick="console.log(foo); console.log(window.foo);">
Click me
</button>
<div onclick="console.log(foo);">Click me as well!</div>
</form>
登入後複製
<p>當您按一下按鈕或
時,將記錄foo 輸入欄位的值,儘管事實上foo 應該超出這些事件處理程序的範圍。這種異常行為可能會導致錯誤和意外結果。 <p>透過使用事件偵聽器,例如:
document.getElementById('element').onclick = doSomething;
登入後複製
<p>您可以明確定義事件處理函數及其範圍,從而防止這些評估異常和確保更可預測的程式碼行為。
以上是內嵌 onclick 屬性或事件偵聽器:哪個比較適合處理事件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!