微信小程序实现长按删除图片的示例


Posted in Javascript onMay 18, 2018

说明

最近在学小程序,遇到长按图片删除的问题,特此记录,记录自己的成长轨迹

需求:

长按删除指定图片

微信小程序实现长按删除图片的示例

需要解决的问题

  1. 长按事件如何表示出来?
  2. 如何获取当前长按元素的下标?
  3. 如何删除元素?

解决办法

  1. 长按事件是用bindlongpress(不会跟点击事件bindtap冲突);
  2. 在wxml中添加索引index,然后在js中用currentTarget.dataset.index获取当前元素下标
  3. 通过splice方法删除splice(index,1),删除一个当前元素

具体实现

<view class="uploader__files">
   <block wx:for="{{images}}" wx:key="{{item.id}}" >
      <view class="uploader__file" bindlongpress="deleteImage" data-index="{{index}}">
        <image mode="aspectFill" class="uploader__img" src="{{item.path}}" />
      </view>
   </block>
</view>

在wxml中添加 bindlongpress="deleteImage" data-index="{{index}}" 来绑定事件并添加索引index

deleteImage: function (e) {
  var that = this;
  var images = that.data.images;
  var index = e.currentTarget.dataset.index;//获取当前长按图片下标
  wx.showModal({
   title: '提示',
   content: '确定要删除此图片吗?',
   success: function (res) {
    if (res.confirm) {
     console.log('点击确定了');
     images.splice(index, 1);
    } else if (res.cancel) {
      console.log('点击取消了');
      return false;    
     }
    that.setData({
     images
    });
   }
  })
 }

删除部分的代码

注意currentTarget与target的区别

1. currentTarget:绑定的事件当前元素及其子元素都会触发

2. target: 绑定的事件 子元素不会被触发事件

效果展示

微信小程序实现长按删除图片的示例

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
AspNet中使用JQuery boxy插件的确认框
May 20 Javascript
jQuery实用技巧必备(上)
Nov 02 Javascript
关于javascript中dataset的问题小结
Nov 16 Javascript
jQuery中队列queue()函数的实例教程
May 03 Javascript
jQuery EasyUI tree 使用拖拽时遇到的错误小结
Oct 10 Javascript
Javascript中call,apply,bind方法的详解与总结
Dec 12 Javascript
js实现简单的手风琴效果
Feb 27 Javascript
原生js实现瀑布流布局
Mar 08 Javascript
详解ES6语法之可迭代协议和迭代器协议
Jan 13 Javascript
Bootstrap 中data-[*] 属性的整理
Mar 13 Javascript
Vue实现底部侧边工具栏的实例代码
Sep 03 Javascript
vue中activated的用法
Jan 03 Vue.js
解决Vue中mounted钩子函数获取节点高度出错问题
May 18 #Javascript
Vue数据双向绑定原理及简单实现方法
May 18 #Javascript
Swiper 4.x 使用方法(移动端网站的内容触摸滑动)
May 17 #Javascript
Vue中对比scoped css和css module的区别
May 17 #Javascript
vue引用js文件的多种方式(推荐)
May 17 #Javascript
vue router+vuex实现首页登录验证判断逻辑
May 17 #Javascript
浅谈webpack-dev-server的配置和使用
May 17 #Javascript
You might like
理解PHP5中static和const关键字的区别
2007/03/19 PHP
zen cart新进商品的随机排序修改方法
2010/09/10 PHP
php判断字符串在另一个字符串位置的方法
2014/02/27 PHP
PHP中的正则表达式实例详解
2017/04/25 PHP
thinkPHP框架实现多表查询的方法
2018/06/14 PHP
Thinkphp5.0 框架视图view的比较标签用法分析
2019/10/12 PHP
个人总结的一些关于String、Function、Array的属性和用法
2007/01/10 Javascript
js实现收缩菜单效果实例代码
2013/10/30 Javascript
Flex通过JS获取客户端IP和计算机名的实例代码
2013/11/21 Javascript
jquery 实现两Select 标签项互调示例代码
2014/09/25 Javascript
jQuery链使用指南
2015/01/20 Javascript
jQuery实现MSN中文网滑动Tab菜单效果代码
2015/09/09 Javascript
js滑动提示效果代码分享
2016/03/10 Javascript
Bootstrap每天必学之响应式导航、轮播图
2016/04/25 Javascript
node文件上传功能简易实现代码
2017/06/16 Javascript
vue的传参方式汇总和router使用技巧
2018/05/22 Javascript
layui-select动态选中值的例子
2019/09/23 Javascript
Vue Object 的变化侦测实现代码
2020/04/15 Javascript
vue相同路由跳转强制刷新该路由组件操作
2020/08/05 Javascript
Python 错误和异常小结
2013/10/09 Python
python中in在list和dict中查找效率的对比分析
2018/05/04 Python
python/Matplotlib绘制复变函数图像教程
2019/11/21 Python
python创建学生成绩管理系统
2019/11/22 Python
python读取ini配置的类封装代码实例
2020/01/08 Python
Swisse官方海外旗舰店:澳大利亚销量领先,自然健康品牌
2017/12/15 全球购物
巴西购物网站:Estrela10
2018/12/13 全球购物
Ruby中的保护方法和私有方法与一般面向对象程序设计语言的一样吗
2013/05/01 面试题
网络工程师职业规划
2014/02/10 职场文书
创建精神文明单位实施方案
2014/03/08 职场文书
单位接收函范文
2015/01/30 职场文书
2015年大学生实习评语
2015/03/25 职场文书
《浅水洼里的小鱼》教学反思
2016/02/16 职场文书
MySQL学习总结-基础架构概述
2021/04/05 MySQL
php 文件上传至OSS及删除远程阿里云OSS文件
2021/07/04 PHP
python基础之函数的定义和调用
2021/10/24 Python
nginx设置资源请求目录的方式详解
2022/05/30 Servers