收藏
回答

怎样使循环列表绑定点击事件互不干扰

问题模块 框架类型 问题类型 终端类型 微信版本 基础库版本
框架 小程序 需求 客户端 1.02 1

比如说我现在循环出来的数据有N条。

我现在出现的问题是:我点击开始录音,N条数据都出现同样的结束录音。

我想要点击事件只对我点击的一条数据起作用怎么实现呀


WXML:

<view wx:for="{{hw_audio_area}}" wx:for-item="item" class="hw_audio_list" wx:key="{{index}}" >

    <text class='content'>{{item}}</text>

    <view wx:if="{{isRecord}}" catchtap='start' data-id='{{index}}' class='btn'>开始录音</view>

    <view wx:if="{{isStop}}" catchtap='stop' data-id='{{index}}' class='btn'>结束录音</view>

    <view wx:if='{{isPlay}}'>

    <view class='rere'>重新录制</view>

   </view>

</view>

JS:

data: {

isPlay: false,

isRecord: true,

isStop: false,

index:'',

},


start: function(e) {

    this.setData({

    index: e.target.dataset.id,

    isStop: true,

    isRecord: false

})





最后一次编辑于  04-13
回答关注问题邀请回答
收藏

1 个回答

  • 痛快科技
    痛快科技
    04-13

    isStop和isRecord两个属性放到hw_audio_area对象中

    [

        {

            id:1,

            name:'abc',

            isStop:false,

            isRecord:true,

            isPlay:false

        }

    ]

    然后控制每个单独对象中的值


    04-13
    赞同
    回复 2
    • 坨坨
      坨坨
      04-13

      hw_audio_area是我从服务器取得的一个需要展示的数组。把这些属性放进去就不能循环了。

      还有你这个 name 的属性从哪里来的呀?我只设了data-id的值。

      你这个方式给我提供了个思路。是不是我新建一个数组。把这些属性组合成一个对象,然后根据每个对象的属性值判断我点击的是哪个VIEW?

      这个怎么实现判断呀?

      如:

      data({

      hw_audio_obj : [{ id : index, isStop : false, isRecord : true, isPlay : false }],

      })


      04-13
      回复
    • 痛快科技
      痛快科技
      04-15回复坨坨

      嗯嗯,每个循环对象单独设置一个isRecord、isPlay、isStop

      04-15
      回复