视频原来是给“评价 按钮绑定bindtap,进入详情页,能获取到movieid。当我把bindtap绑定在一个电影上时,传过来的movieid是undefined,代码如下
<view class="movie" wx:for="{{movieList}}" wx:key="{{item.index}}" bindtap="goDetail" data-movieid="{{item.id}}"> <image class="movie-img" src="{{item.images.small}}"></image> <view class="movie-info"> <view class="movie-title">{{item.title}}</view> <view class="movie-score">评分: <text>{{item.rating.average}}分</text> </view> <view class="movie-actor">演员: <text wx:for="{{item.casts}}" wx:key="{{item.index}}">{{item.name}}</text> </view> <view>时长:{{item.durations}}</view> </view> </view>
十分感谢老师?
是detail.js的第15行代码获取不到,应该把这个代码截图出来。。。
不过大概能想到是什么问题,在获取movieid的时候,使用的方式是不是:event.target.dataset.movieid。改成这个试试:event.currentTarget.dataset.movieid
这里就需要了解target和currentTarget的区别了:
target指的是触发事件的元素,currentTarget
指向的是添加监听事件的对象;和事件冒泡有关。
比如元素的点击事件是给class="movie"元素绑定的,而点击的是class="movie-title"这个元素,那么这时的target就是class="movie-title"这个元素,而currentTarget就是class="movie"这个元素。