【小程序】关于bindtap传值

时间:2022-10-12 22:32:31

啦啦啦,端正态度,开始写技术博客哼哼~

刚开始练手,准备模仿朝夕日历的番茄闹钟进行语法以及布局练习:

【小程序】关于bindtap传值

从最简单的需求开始:点击分类,下面多一条红色border表示选中。

在Page中定义一个值tagsSelect,作为选项的参数:

Page({
...
data: {
tagsSelect:0
},
...
})

定义一个方法,来接收选项值的改变,从而改变样式:

但如果你这么写,

<view class="{{tagsSelect==6?'active':''}}" bindtap="selectTag(6)">阅读</view>

会出警告:
【小程序】关于bindtap传值

我们需要给所在的view标签里加一个自定义属性 data-index,来传递参数:

...
<view class="tagsRow">
<view class="{{tagsSelect==1?'active':
''}}" data-index="1" bindtap="selectTag">工作</view>
<view class="
{{tagsSelect==2?'active':''}}" data-index="2" bindtap="selectTag">学习</view>
<view class="
{{tagsSelect==3?'active':''}}" data-index="3" bindtap="selectTag">思考</view>
</view>
...

JS中方法如下,小程序中值的修改都要用setData方法:

...
selectTag:function(event){
var $this = this;
$this.setData({
tagsSelect:event.target.dataset.index,
})
},
...

event.target.dataset.+(自定义属性名 data-后的名称)

以上。

PS:第一次写技术博客很不熟练,抛砖引玉,望各位大大指点~