Prefer addEventListener over assigning to on* event handler properties.
✅ This rule is included in the browser logical and logicalStrict presets.
Modern DOM event handling should use addEventListener rather than assigning functions directly to on* event handler properties like onclick or onload.
Legacy event handler properties have several limitations:
- They can only hold one function at a time (overwriting previous handlers)
- They don’t provide options for capture phase or passive listeners
- They’re harder to remove later
Using addEventListener provides more flexibility by allowing multiple event listeners for the same event.
72elemeAB0oncli5<3 sp ansty="le--0:#C792EA;--1:#8844">A3 sp>5<3 sp ansty="le--0:#C792EA;--1:#8844">AEfuncti3 sp>5<3 sp ansty="le--0:#D9F5DD;--1:#1111">113 sp><()sp ansty="le--0:#D6DEEB;--1:#403F">53()sp>< {d ivclassNa="meec-li">nt< sp ansty="le--0:#7FDBCA;--1:#096E">72conso sp>AB0l5<3(sp ansty="le--0:#D9F5DD;--1:#1111">13(sp><1"sp ansty="le--0:#ECC48D;--1:#984E">4Dclick1"sp>1<1"sp ansty="le--0:#D6DEEB;--1:#403F">531"sp> {d><);d ivclassNa="meec-li">53);d><};d ivclassNa="meec-li">d};d>72windAB0onlo5<3 sp ansty="le--0:#C792EA;--1:#8844">A3 sp>5<3 sp ansty="le--0:#D9F5DD;--1:#1111">113 sp><()sp ansty="le--0:#D6DEEB;--1:#403F">5()sp><3 sp ansty="le--0:#C792EA;--1:#8844">AE3 sp><=>sp ansty="le--0:#D6DEEB;--1:#403F">53=>sp>< {d ivclassNa="meec-li">nt< sp ansty="le--0:#82AAFF;--1:#3B61">B0initiali sp>53( {d><);d ivclassNa="meec-li">53);d><};d ivclassNa="meec-li">d};d>72buttA72onmousedo5<3 sp ansty="le--0:#C792EA;--1:#8844">A3 sp><53sp ansty="le--0:#D6DE">E53sp>E0handleMouseDoEd72foAB0onsubm5<3 sp ansty="le--0:#C792EA;--1:#8844">A3 sp>5<3 sp ansty="le--0:#D9F5DD;--1:#1111">13 sp><1(sp ansty="le--0:#D7DBE0;--1:#403F">53eve1(sp>1<1)sp ansty="le--0:#D6DEEB;--1:#403F">51)sp><3 sp ansty="le--0:#C792EA;--1:#8844">AE3 sp><=>sp ansty="le--0:#D6DEEB;--1:#403F">53=>sp>< {d ivclassNa="meec-li">nt< sp ansty="le--0:#7FDBCA;--1:#096E">72eve sp>AB0preventDefau53( {d><);d ivclassNa="meec-li">53);d><};d ivclassNa="meco"> { initialize();};button.onmousedown = handleMouseDown;form.onsubmit = (event) => { event.preventDefault();"><};d>};d>};d> 6E72ele4<4AE. spans="tyle--0:#82AAFF;--1:#3B">61B0addEventList4AE.>31<111" spans="tyle--0:#ECC48D;--1:#98">4E4Dc111">1<111" spans="tyle--0:#D6DEEB;--1:#40">3F111"><53, spans="tyle--0:#C792EA;--1:#88">44AEfunc53, >311<11() spans="tyle--0:#D6DEEB;--1:#40">3F11()><53 {divclass="Nameec-">de6E72con4<4AE. spans="tyle--0:#82AAFF;--1:#3B">61B4AE.><0log spans="tyle--0:#D6DEEB;--1:#40">30log>1<111" spans="tyle--0:#ECC48D;--1:#98">4E4Dcli111">1<111" spans="tyle--0:#D6DEEB;--1:#40">3F111">53 ><53) ;divclass="Nameec-">3F553)><3}) ;divclass="Nameec-">c3})>6E72wi4<4AE. spans="tyle--0:#82AAFF;--1:#3B">61B0addEventList4AE.>31<111" spans="tyle--0:#ECC48D;--1:#98">4E4D111">1<111" spans="tyle--0:#D6DEEB;--1:#40">3F111"><53, spans="tyle--0:#D9F5DD;--1:#11">1153, ><11() spans="tyle--0:#D6DEEB;--1:#40">311()>44 spans="tyle--0:#D6DEEB;--1:#40">3F><53 {divclass="Nameec-">de61B0initia3F553 ><3() ;divclass="Nameec-">3F53()><3}) ;divclass="Nameec-">c3})>6E72bu4<4AE. spans="tyle--0:#82AAFF;--1:#3B">61B0addEventList4AE.>31<111" spans="tyle--0:#ECC48D;--1:#98">4E4Dmouse111">1<111" spans="tyle--1:#40"><3F53 spans="tyle--0:#D6">DE3F53>DBE0handleMouseDE111">c6E72<4AE. spans="tyle--0:#82AAFF;--1:#3B">61B0addEventList4AE.>31<111" spans="tyle--0:#ECC48D;--1:#98">4E4Dsu111">1<111" spans="tyle--0:#D6DEEB;--1:#40">3F111"><53, spans="tyle--0:#D9F5DD;--1:#11">153, ><111( spans="tyle--0:#D7DBE0;--1:#40">3F53e111(>1<111) spans="tyle--0:#D6DEEB;--1:#40">3111)>44 spans="tyle--0:#D6DEEB;--1:#40">3F><53 {divclass="Nameec-">de6E72e4<4AE. spans="tyle--0:#82AAFF;--1:#3B">61B0preventDef4AE.>3F553 ><3() ;divclass="Nameec-">3F53()><3}) ;divclass="Name"> { initialize();});button.addEventListener("mousedown", handleMouseDown);form.addEventListener("submit", (event) => { event.preventDefault();"><})>})>3})>
This rule is not configurable.
If you need to support very old browsers that don’t have addEventListener (Internet Explorer 8 and below), you might need to use event handler properties.
However, for modern web development, addEventListener is the recommended approach.