js面接、事件に関する質問
1785 ワード
この一節は簡単です.何も言いません.1.1ユニバーサルイベントバインディングel.addEvent Listener(event、calback)el.preventDefault();addEventListener()によって追加されるイベントを阻止するデフォルトイベント1.2 ieイベントバインディングel.atachEvent(el,calback)el.return Value=false;atachEvent()によって追加されるイベントのデフォルトイベントをブロックします.
次はjqに似た世界バインディングを書きましょう.ie互換性がないので、書くのがおっくうです.難しいことでもありません. w 3 cの方法はe.stopPropagation() である. e.ccel Bbble=true コードを通じて事件の泡が発生することを理解します.これまでのコードです. です.私は2 です.私は3 です. DOM 3レベル新規イベントstopImmeditePropagation()方法は、イベントトラッピングを阻止する . stopPropagation()は、イベントの捕捉を阻止することもできる. stopImmediatePropagationとstopPropagationの違いはどこですか?後者は発泡や捕獲を阻止するだけです.しかし、前者はこれ以外にも要素の他のイベントの発生を阻止しますが、後者は他のイベントの発生を阻止しません.
次はjqに似た世界バインディングを書きましょう.ie互換性がないので、書くのがおっくうです.難しいことでもありません.
let a = window.a=window.$=function (el){
if(this instanceof a){
this.el = document.querySelector(el)
}else{
return new a(el)
}
}
a.prototype.on=function(evnettype,callback){
this.el.addEventListener(evnettype,callback)
}
//
$('.parent').on('click',()=>{
alert('sss')
})
二、事件の泡が立ったということは、このように理解しましょう.子供の事件をきっかけに父の事件を引き起こしました.let a = window.a=window.$=function (el){
if(this instanceof a){
this.el = document.querySelector(el)
}else{
return new a(el)
}
}
a.prototype.on=function(evnettype,callback){
this.el.addEventListener(evnettype,callback)
}
$("#ulbox").on('click',(e)=>{
console.log('parent-ul')
})
$("#child-li").on('click',(e)=>{
console.log('child-li')
//e.stopPropagation();
})
事件の代理は実は事件の泡が立つような運用で、本来息子にやっていたことを父に任せています.タージで確定する//
$("#ulbox").on('click',(e)=>{
let el = e.target||event.target
console.log(el.textContent)
})
三、イベントキャプチャイベントは、親レベルのイベントをトリガし、サブレベルのイベントをトリガすることである.