
事件映射表,左側(cè)為 WEB 事件,右側(cè)為 uni-app 對(duì)應(yīng)事件
{
click: 'tap',
touchstart: 'touchstart',
touchmove: 'touchmove',
touchcancel: 'touchcancel',
touchend: 'touchend',
tap: 'tap',
longtap: 'longtap',
input: 'input',
change: 'change',
submit: 'submit',
blur: 'blur',
focus: 'focus',
reset: 'reset',
confirm: 'confirm',
columnchange: 'columnchange',
linechange: 'linechange',
error: 'error',
scrolltoupper: 'scrolltoupper',
scrolltolower: 'scrolltolower',
scroll: 'scroll'
}
在 input 和 textarea 中 change 事件會(huì)被轉(zhuǎn)為 blur 事件。
踩坑注意:
上列表中沒(méi)有的原生事件也可以使用,例如map組件的regionchange 事件直接在組件上寫(xiě)成 @regionchange,同時(shí)這個(gè)事件也非常特殊,它的 event type 有 begin 和 end 兩個(gè),導(dǎo)致我們無(wú)法在handleProxy 中區(qū)分到底是什么事件,所以你在監(jiān)聽(tīng)此類(lèi)事件的時(shí)候同時(shí)監(jiān)聽(tīng)事件名和事件類(lèi)型既 <map @regionchange="functionName" @end="functionName" @begin="functionName"><map>
平臺(tái)差異所致,bind 和 catch 事件同時(shí)綁定時(shí)候,只會(huì)觸發(fā) bind ,catch 不會(huì)被觸發(fā),要避免踩坑。
事件修飾符
stop 的使用會(huì)阻止冒泡,但是同時(shí)綁定了一個(gè)非冒泡事件,會(huì)導(dǎo)致該元素上的 catchEventName 失效!
prevent 可以直接干掉,因?yàn)閡ni-app里沒(méi)有什么默認(rèn)事件,比如 submit 并不會(huì)跳轉(zhuǎn)頁(yè)面
self 沒(méi)有可以判斷的標(biāo)識(shí)
once 也不能做,因?yàn)閡ni-app沒(méi)有 removeEventListener, 雖然可以直接在 handleProxy 中處理,但非常的不優(yōu)雅,違背了原意,暫不考慮
按鍵修飾符:uni-app運(yùn)行在手機(jī)端,沒(méi)有鍵盤(pán)事件,所以不支持按鍵修飾符。
您發(fā)布的評(píng)論即表示同意遵守以下條款:
一、不得利用本站危害國(guó)家安全、泄露國(guó)家秘密,不得侵犯國(guó)家、社會(huì)、集體和公民的合法權(quán)益;
二、不得發(fā)布國(guó)家法律、法規(guī)明令禁止的內(nèi)容;互相尊重,對(duì)自己在本站的言論和行為負(fù)責(zé);
三、本站對(duì)您所發(fā)布內(nèi)容擁有處置權(quán)。