【小程序】关于bindtap传值

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

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

这里写图片描述

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

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

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

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

但如果你这么写,

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

会出警告:
这里写图片描述

我们需要给所在的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:第一次写技术博客很不熟练,抛砖引玉,望各位大大指点~

展开阅读全文

没有更多推荐了,返回首页