微信小程序bindtap事件與冒泡阻止詳解
bindtap就是點(diǎn)擊事件
在.wxml文件綁定:
<text id='textId' data-userxxx='100' bindtap='tapMessage'>cilck here</text>
在一個(gè)組件的屬性上添加bindtap并賦予一個(gè)值(一個(gè)函數(shù)名)
當(dāng)點(diǎn)擊該組件時(shí), 會(huì)觸發(fā)相應(yīng)的函數(shù)執(zhí)行
在后臺(tái).js文件中定義tapMessage函數(shù):
//index.js Page({ data: { mo: 'Hello World!!', userid : '1234', }, // 定義函數(shù) tapMessage: function(event) { console.log(event.target.id); // 可獲得 console.log(event.target.name); // 無法獲得, 通過target只能直接獲取id console.log(event.target.dataset); // 要獲得其它屬性, 需要從dataset(數(shù)據(jù)集)中獲取 console.log(event.target.dataset.userxxx); // userxxx為自定義的屬性名, 但命名方式為:data-userxxx // 這里還原使用userXxx console.log(event.target.dataset.userXxx); } })
event封裝的是該事件的信息, 如上通過它可得到一些數(shù)據(jù)
注意一點(diǎn):
<!-- data-userXxx,這個(gè)大寫的X要改為-x --> <text id='textId' data-user-xxx='100' bindtap='tapMessage'>cilck here</text>
自定義數(shù)據(jù)(data-)中的大寫改為 短橫線+其小寫
取數(shù)據(jù)時(shí), 去掉data和那些短橫線并還原大寫 (data-user-xxx --> userXxx)
事件冒泡就是指嵌套事件發(fā)生
如果多層標(biāo)簽嵌套, 里層事件發(fā)生后, 其外層會(huì)相應(yīng)發(fā)生, 如:
<view bindtap='handout'> outer <view bindtap='handmiddle'> middle <view bindtap='handinner'>inner</view> </view> </view>
handout: function () { console.log("out"); }, handmiddle: function () { console.log("middle"); }, handinner: function () { console.log("inner"); }
點(diǎn)擊inner三個(gè)事件都執(zhí)行, 點(diǎn)擊middlek執(zhí)行handmiddle和handout, 點(diǎn)擊out只執(zhí)行handout
阻止事件冒泡行為: 將bindtap改為catchtap就行了, 只會(huì)觸發(fā)自身的點(diǎn)擊事件
<view bindtap='handout'> outer <view catchtap='handmiddle'> middle <view bindtap='handinner'>inner</view> </view> </view>
需要理解是, 它阻斷自身的冒泡行為
如上點(diǎn)擊inner, 執(zhí)行的是handinner和handmiddle兩個(gè)函數(shù)
不管是不是自身觸發(fā)的點(diǎn)擊行為, 傳到我這里, 我就將它阻斷(不再向上傳遞)
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JS中產(chǎn)生標(biāo)識(shí)符方式的演變
本文記錄下JS中產(chǎn)生標(biāo)識(shí)符方式的演變,從ES5到ES6,ES5及其之前是一種方式,只包含兩種聲明(var/function),ES6則增加了一些產(chǎn)生標(biāo)識(shí)符的關(guān)鍵字,如 let、const、class。2015-06-06ECMAScript6塊級(jí)作用域及新變量聲明(let)
這篇文章主要介紹了ECMAScript6塊級(jí)作用域及新變量聲明(let) 的相關(guān)資料,需要的朋友可以參考下2015-06-06在JavaScript中驗(yàn)證URL的新方法(2023版)
在JavaScript領(lǐng)域,URL 驗(yàn)證方面有了新消息!多年來,人們一直在討論JavaScript沒有一種簡便的方法來驗(yàn)證 URL,現(xiàn)在有了一種新方法URL.canParse(),需要的朋友可以參考下2023-09-09js實(shí)現(xiàn)class樣式的修改、添加及刪除的方法
這篇文章主要介紹了js實(shí)現(xiàn)class樣式的修改、添加及刪除的方法,主要通過修改標(biāo)簽的className來實(shí)現(xiàn)這一功能,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-01-01JavaScript使用readAsDataUrl方法預(yù)覽圖片
這篇文章主要為大家詳細(xì)介紹了JavaScript使用readAsDataUrl方法預(yù)覽圖片,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05javascript正則表達(dá)式定義(語法)總結(jié)
這篇文章主要介紹了javascript正則表達(dá)式定義,對(duì)于JavaScript正則表達(dá)式的語法進(jìn)行了總結(jié)分析,需要的朋友可以參考下2016-01-01