在apicloud上实现长按列表某一项弹出框

4 篇文章 0 订阅
2 篇文章 0 订阅
1、what:
场景:用apicloud做APP时要求长按列表中某一项对该项做出操作
2、如何做how:
  1. apicloud的文档里有一个监听长按的事件
api.addEventListener({
    name:'longpress'
}, function(ret, err){        
   alert('长按了页面');
});
  1. vue中有个@touchstar事件,手指刚触碰到元素时触发
<li class="comment-item" v-for="(item, index) in list" :key="item.id" @touchstart="getTouchStart(index, item.id)">你的自定义列表内容</li>
  1. 结合1 、2两点:在手指刚触碰到列表子项时,用touchstart事件来触发getTouchStart函数,该函数中监听是否长按longpress,如果监听到是长按了,就做业务逻辑操作
//@touchstart事件调用的方法:
   getTouchStart(index, _id) {
   		api.addEventListener({
                    name: 'longpress'
                }, function (ret, err) {
                    //  长按了页面,弹出提示框
                    api.actionSheet({
                        cancelTitle: '取消',
                        buttons: ['删除该评论']
                    }, function (ret, err) {
                        if (ret.buttonIndex === 1) {
                        //弹出确认提示框
                            api.confirm({
                                title: '确认删除',
                                msg: '确认要删除目前' + lou + '楼评论吗?',
                                buttons: ['确定', '取消']
                            }, function (ret, err) {
                                if (ret.buttonIndex == 1) {
                                //做你的业务操作    
                                }
                            });
                        }

                    });
                });
      }
3、为什么不用时间监听器写长按事件 ?why

我翻了一下,网上关于vue的长按事件涉及了计时器,还有touchmove,touchend,这样做太繁琐了,成本开销更大,而且丢掉了原生开发原本就有的api的优势。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值