微信小程序自定義多選事件的實現(xiàn)代碼
要實現(xiàn)下圖的效果(自定義多選單選),大多數(shù)公司項目的多選框都是自己設(shè)計的,所以用原生標(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)行判斷是哪個的事件**/ <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)前點擊元素的自定義數(shù)據(jù),這個很關(guān)鍵 let selectIndex = this.data.selectIndex; //取到data里的selectIndex selectIndex[index].sureid = !selectIndex[index].sureid; //點擊就賦相反的值 this.setData({ selectIndex: selectIndex //將已改變屬性的json數(shù)組更新 }) } })
currentTarget::事件綁定的當(dāng)前組件。
dataset:在組件中可以定義數(shù)據(jù),這些數(shù)據(jù)將會通過事件傳遞給 SERVICE。 書寫方式: 以data-開頭,多個單詞由連字符-鏈接,不能有大寫(大寫會自動轉(zhuǎn)成小寫)如data-element-type,最終在 event.currentTarget.dataset 中會將連字符轉(zhuǎn)成駝峰elementType。
開始入門學(xué)習(xí)小程序的,看官方文檔就好了。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
基于JavaScript實現(xiàn)抽獎系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了基于JavaScript實現(xiàn)抽獎系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-01-01微信小程序?qū)崿F(xiàn)左側(cè)導(dǎo)航欄
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)左側(cè)導(dǎo)航欄,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-07-07JS中循環(huán)遍歷數(shù)組的四種方式總結(jié)
這篇文章主要給大家總結(jié)介紹了關(guān)于JS中循環(huán)遍歷數(shù)組的四種方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01javascript 面向?qū)ο髮崙?zhàn)思想分享
萬物皆對象,所以,任何事物都是有特征(屬性)和動作(方法)的,一般拿到一份需求分檔,或者你瀏覽一個網(wǎng)頁看到一個畫面的時候,腦子里就要有提煉出來的屬性和方法的能力,那你才是合格的2017-09-09關(guān)于Mozilla瀏覽器不支持innerText的解決辦法
在各大瀏覽器中,除Mozilla瀏覽器外,幾乎都支持一個元素的屬性:innerText。我們可以通過它來快速獲取某個元素的內(nèi)的文本。2011-01-01js 有框架頁面跳轉(zhuǎn)(target)三種情況下的應(yīng)用
本文主要介紹下有框架頁面的跳轉(zhuǎn):跳出框架,在父頁面;從一個框架跳轉(zhuǎn)到 name=main的框架里;ContentList 當(dāng)前頁的iframe名字,感興趣的朋友可以了解下哈2013-04-04