微信小程序自定義多選事件的實(shí)現(xiàn)代碼
要實(shí)現(xiàn)下圖的效果(自定義多選單選),大多數(shù)公司項(xiàng)目的多選框都是自己設(shè)計(jì)的,所以用原生標(biāo)簽或者組件是不可行的,最簡單的是自己綁定事件,然后切換選擇和未選擇的圖片。而小程序和vue一樣是沒法操作dom的,所以要利用數(shù)組的下標(biāo)和自定義屬性來進(jìn)行三元判斷。
直接上代碼:
wxml:
<view class="sel-box"> /**用wx:for來進(jìn)行列表渲染**/ <view wx:for="{{repContent}}" class="multi-selection"> <text>{{item.message}}</text> /**利用數(shù)組的下標(biāo)index來進(jìn)行判斷是哪個(gè)的事件**/ <image src="{{selectIndex[index].sureid? hasSelect : noSelect}}" class="multi-img" data-selectIndex="{{index}}" bindtap="selectRep" /> </view> </view>
js:
Page({ /** * 頁面的初始數(shù)據(jù) */ data: { noSelect: 'https://xxxxx/ic_report_nor@2x.png', hasSelect: 'https://xxxxx/ic_check_ele@2x.png', repContent: [{ message: '廣告內(nèi)容' }, { message: '不友善內(nèi)容' }, { message: '垃圾內(nèi)容' }, { message: '違法違規(guī)內(nèi)容' }, { message: '其他' }], selectIndex: [ { sureid: false }, { sureid: false }, { sureid: false }, { sureid: false }, { sureid: false }, ], }, /** * 生命周期函數(shù)--監(jiān)聽頁面加載 */ onLoad: function (options) { }, selectRep:function(e){ let index = e.currentTarget.dataset.selectindex; //當(dāng)前點(diǎn)擊元素的自定義數(shù)據(jù),這個(gè)很關(guān)鍵 let selectIndex = this.data.selectIndex; //取到data里的selectIndex selectIndex[index].sureid = !selectIndex[index].sureid; //點(diǎn)擊就賦相反的值 this.setData({ selectIndex: selectIndex //將已改變屬性的json數(shù)組更新 }) } })
currentTarget::事件綁定的當(dāng)前組件。
dataset:在組件中可以定義數(shù)據(jù),這些數(shù)據(jù)將會通過事件傳遞給 SERVICE。 書寫方式: 以data-開頭,多個(gè)單詞由連字符-鏈接,不能有大寫(大寫會自動轉(zhuǎn)成小寫)如data-element-type,最終在 event.currentTarget.dataset 中會將連字符轉(zhuǎn)成駝峰elementType。
開始入門學(xué)習(xí)小程序的,看官方文檔就好了。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 微信小程序?qū)崿F(xiàn)多選框全選操作
- 微信小程序?qū)崿F(xiàn)多選框功能的實(shí)例代碼
- 微信小程序復(fù)選框?qū)崿F(xiàn)多選一功能過程解析
- 微信小程序全選多選效果實(shí)現(xiàn)代碼解析
- 微信小程序?qū)崿F(xiàn)多選框全選與反全選及購物車中刪除選中的商品功能
- 微信小程序?qū)崿F(xiàn)多選框全選與取消全選功能示例
- 微信小程序單選radio及多選checkbox按鈕用法示例
- 微信小程序?qū)崿F(xiàn)多選刪除列表數(shù)據(jù)功能示例
- 微信小程序?qū)崿F(xiàn)多選功能
- 微信小程序自定義組件實(shí)現(xiàn)多選功能
相關(guān)文章
基于JavaScript實(shí)現(xiàn)抽獎系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了基于JavaScript實(shí)現(xiàn)抽獎系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01微信小程序?qū)崿F(xiàn)左側(cè)導(dǎo)航欄
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)左側(cè)導(dǎo)航欄,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07JS中循環(huán)遍歷數(shù)組的四種方式總結(jié)
這篇文章主要給大家總結(jié)介紹了關(guān)于JS中循環(huán)遍歷數(shù)組的四種方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01javascript 面向?qū)ο髮?shí)戰(zhàn)思想分享
萬物皆對象,所以,任何事物都是有特征(屬性)和動作(方法)的,一般拿到一份需求分檔,或者你瀏覽一個(gè)網(wǎng)頁看到一個(gè)畫面的時(shí)候,腦子里就要有提煉出來的屬性和方法的能力,那你才是合格的2017-09-09關(guān)于Mozilla瀏覽器不支持innerText的解決辦法
在各大瀏覽器中,除Mozilla瀏覽器外,幾乎都支持一個(gè)元素的屬性:innerText。我們可以通過它來快速獲取某個(gè)元素的內(nèi)的文本。2011-01-01js 有框架頁面跳轉(zhuǎn)(target)三種情況下的應(yīng)用
本文主要介紹下有框架頁面的跳轉(zhuǎn):跳出框架,在父頁面;從一個(gè)框架跳轉(zhuǎn)到 name=main的框架里;ContentList 當(dāng)前頁的iframe名字,感興趣的朋友可以了解下哈2013-04-04JavaScript碰撞檢測原理及其實(shí)現(xiàn)代碼
這篇文章主要為大家詳細(xì)介紹了JavaScript碰撞檢測原理及其實(shí)現(xiàn)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03