onDeleteComment(event) { // 获取被点击的删除按钮的 data-id 值 var id = event.currentTarget.dataset.id; // 遍历评论列表,找到需要删除的评论对象 for(var i=0; i<commentList.length; i++) { if(commentList[i].id == id) { // 删除该评论对象 commentList.splice(i, 1); // 更新页面的评论列表和评论数量 this.setData({ commentList: commentList, commentCount: commentList.length }); break; } } },
时间: 2024-02-14 15:14:34 浏览: 24
这段代码看起来像是小程序的 JavaScript 代码,它定义了一个 onDeleteComment 函数,用于删除评论。在函数内部,它通过 event 参数获取了被点击的删除按钮的 data-id 值,然后遍历评论列表 commentList,找到需要删除的评论对象,并将其从数组中删除。最后,它更新了页面的评论列表和评论数量,使得页面上显示的评论内容是最新的。
相关问题
const { DBPost } = require("../../db/DBPost"); // pages/post-detail/post-detail.js Page({ /** * 页面的初 zx始数据 */ data: { }, /** * 生命周期函数--监听页面加载 */ onLoad:function(options) { var postId=options.id; this.dbPost=new DBPost(postId); this.postData=this.dbPost.getPostItemById().data; this.setData({ post:this.postData }) }, onReady:function(){ wx.setNavigationBarTitle({ title: this.postData.title }) }, onCollectionTap:function(event){ var newData = this.dbPost.collect(); this.setData({ 'post.collectionStatus':newData.collectionStatus, 'post.collectionNum':newData.collectionNum }) wx.showToast({ title:newData.collectionStatus?"收藏成功":"取消成功", duration:1000, icon:"success", mask:true }) }, onUpTap:function(evenet){ var newData=this.dbPost.up(); this.setData({ 'post.upStatus':newData.upStatus, 'post.upNum':newData.upNum }) }, onCommentTap:function(event){ var id = event.currentTarget.dataset.postId; wx.navigateTo({ url: '../post/post-comment/post-comment?id=' +id }) }, /** * 生命周期函数--监听页面初次渲染完成 */ /** * 生命周期函数--监听页面显示 */ onShow() { }, /** * 生命周期函数--监听页面隐藏 */ onHide() { }, /** * 生命周期函数--监听页面卸载 */ onUnload() { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh() { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom() { }, /** * 用户点击右上角分享 */ onShareAppMessage() { } })分析代码
这段代码是一个小程序的页面逻辑代码,主要是用于展示帖子详情页面的相关操作。
首先通过`require`引入了一个名为`DBPost`的数据库操作类。在`onLoad`生命周期函数中,获取了从上一个页面传递过来的`id`参数,并创建了一个`DBPost`对象,通过该对象的`getPostItemById`方法获取了对应`id`的帖子数据,并将其赋值给了`postData`变量。然后通过`setData`方法将`postData`数据绑定到`post`变量上,从而用于在页面中展示帖子的相关信息。
在`onReady`生命周期函数中,设置了导航栏标题为帖子的标题。
然后定义了`onCollectionTap`、`onUpTap`和`onCommentTap`等事件处理函数,分别用于处理收藏、点赞和评论等相关操作。这些事件处理函数都是通过`DBPost`对象来实现相关操作,并通过`setData`方法更新页面数据。
最后定义了一些其他生命周期函数和事件处理函数,用于在页面展示过程中进行一些操作处理。
总之,这段代码实现了一个帖子详情页面的展示和相关操作,其中使用了`DBPost`类来实现对帖子数据的操作。
<view class="placeholder" bindlongpress="delect" > <view wx:for='{{pageList}}' wx:key="_id" class="event-list"> <navigator url="../home/imgshow?id={{item._id}}" class="event-link" data-aid="{{item._id}}"> <view class="event-img" > <image mode="widthFix" src="{{item.fileID}}"> </image> </view> <view class="event-content" > <view class="event-title" >"{{item.name}}"</view> <view class="event-desc">"{{item.discribe}}"</view> <view class="event-box"> <view class="event-time">"{{item.time}}"</view> </view> </view> </navigator> </view> </view>在以上微信小程序wxml代码中为什么delect方法中event.currentTarget.dataset.aid显示undefined
在上述代码中,`delect`方法是在`view`标签上绑定的长按事件,但是`event.currentTarget.dataset.aid`是从`navigator`标签上获取的属性。因此,当长按`view`标签时,它无法正确获取`navigator`标签上的属性值,导致`undefined`的出现。
要解决这个问题,你可以将`data-aid`属性从`navigator`标签移动到`view`标签上,这样就可以在`delect`方法中正确获取到`data-aid`的值了。例如:
```html
<view class="placeholder" bindlongpress="delect">
<view wx:for='{{pageList}}' wx:key="_id" class="event-list">
<navigator url="../home/imgshow?id={{item._id}}" class="event-link">
<view class="event-img" >
<image mode="widthFix" src="{{item.fileID}}">
</image>
</view>
<view class="event-content" data-aid="{{item._id}}">
<view class="event-title" >"{{item.name}}"</view>
<view class="event-desc">"{{item.discribe}}"</view>
<view class="event-box">
<view class="event-time">"{{item.time}}"</view>
</view>
</view>
</navigator>
</view>
</view>
```
然后在`delect`方法中使用`event.target.dataset.aid`来获取`data-aid`属性的值即可。例如:
```javascript
Page({
delect: function(event) {
var id = event.target.dataset.aid;
console.log(id);
}
});
```
阅读全文