あなたが知らないpreventDefault
1362 ワード
dom.addEventListener("click", function fn1(event) {
event.preventDefault()
}, false)
dom.addEventListener("click", function fn1(event) {
console.log("event.defaultPrevented", event.defaultPrevented) // => true
}, false)
: addEventListener , fn1 fn2 , fn2 event.preventDefault(),fn1 defaultPrevented fn2 , false
dom.addEventListener("click", function fn1(event) {
queueMicrotask(() => {
event.preventDefault()
})
})
dom.addEventListener("click", function fn1(event) {
setTimeout(() => {
event.preventDefault()
})
})
1と2を結合すると、ハイパーリンクのジャンプロジックをカスタマイズできます.linkDOM.addEventListener("click", function fn1(event) {
queueMicrotask(() => {
// ,
if (!event.defaultPrevented){
// , : window.open(linkDOM.href, "_top")
event.preventDefault()
}
})
}, false)