第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

使用jq框架,如何讓事件在捕獲階段執(zhí)行。

使用jq框架,如何讓事件在捕獲階段執(zhí)行。

千巷貓影 2018-09-24 20:15:02
比如在父元素A設(shè)置一個(gè)事件,在子元素B設(shè)置另一個(gè)事件。點(diǎn)擊子元素的時(shí)候,我希望A的事件先觸發(fā)(就是按照捕獲階段執(zhí)行)但是我看過(guò)源碼,jq綁定事件的addEventlistener只能冒泡執(zhí)行。這令我不解,難道jq沒(méi)有給出解決方法嗎?這種情況應(yīng)該有人遇到過(guò)才對(duì),是怎么解決的呢?$(box).on('click',function(e){console.log(0)}); //并不是最先觸發(fā)的$(b1).on('click',function(e){console.log(1)}); $(box).on('click.blur','.b1',function(e){console.log(2)});
查看完整描述

1 回答

?
臨摹微笑

TA貢獻(xiàn)1982條經(jīng)驗(yàn) 獲得超2個(gè)贊



看來(lái)是jq本身沒(méi)有打算為事件控制捕獲順序了。
那么我試著假設(shè)要為jq框架的基礎(chǔ)上添加一個(gè)這樣的功能,修改原先的程序。
首先為綁定事件(event.add)增加一個(gè)可選參數(shù)capture,用于決定捕獲順序。
正常來(lái)說(shuō)jq只會(huì)為一個(gè)元素綁定一個(gè)addEventListener。但為了能按照捕獲順序觸發(fā)函數(shù),接收到有capture的事件,需額外綁定一個(gè)capture為true的addEventListener。
為jq事件處理對(duì)象(handlers)加上capture屬性。
然后修改event.handlers方法,按照事件傳播階段(eventPhase)來(lái)判斷現(xiàn)在觸發(fā)的是捕獲還是冒泡觸發(fā)。如果是捕獲觸發(fā),在處理程序列表(handlerQueue)內(nèi)插入capture為true的handlers。然后就能按照正常流程執(zhí)行處理程序。
以上的修改能保留原先的構(gòu)造上增加捕獲觸發(fā)的功能,也能使用jq.off(解除綁定事件)。希望以后jq能增加這個(gè)功能吧。


查看完整回答
反對(duì) 回復(fù) 2018-09-24
  • 1 回答
  • 0 關(guān)注
  • 796 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)