畫(huà)紅框的都是一個(gè)點(diǎn)擊事件這個(gè)藍(lán)色區(qū)域的點(diǎn)擊事件是讓右上角的彈窗關(guān)閉最外層的點(diǎn)擊事件添加了阻止冒泡行為 touchstart.stop=“closeMenu” 還是沒(méi)生效 點(diǎn)擊藍(lán)色區(qū)域關(guān)閉右上角彈窗跟下層的點(diǎn)擊事件同時(shí)執(zhí)行了 這應(yīng)該怎么阻止?
1 回答

子衿沉夜
TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊
思想:
在最外層div上綁定事件 注意菜單不能包含在此div中
菜單狀態(tài) open = true;時(shí)點(diǎn)擊非菜單部分關(guān)閉菜單 open = false;此時(shí)阻止捕獲;
菜單狀態(tài) open = false; 此時(shí)不做任何操作
大概這樣做:
<div @click.capture = myClick($event)></div>//.capture 設(shè)置事件為捕獲模式j(luò)s: myClick:(event){ if(this.open){ event.preventDefault();//再stop止單擊事件繼續(xù)傳播 ,然后子元素就不會(huì)被觸發(fā) this.open = false;//關(guān)閉菜單 } }
添加回答
舉報(bào)
0/150
提交
取消