零基础手把手教你创建微信小程序(十六)·事件传参·data-*自定义数据

        事件传参:在触发事件时,将一些数据作为参数传递给事件处理函数的过程,就是事件传参。

        在微信小程序中,我们经常会在组件上添加一些自定义数据,然后在事件处理函数中获取这些自定义数据,从而完成业务逻辑的开发。

        在组件上通过data-"的方式定义需要传递的数据,其中*是自定义的属性,例如: <view data-id="100" bindtap="handier"/>然后通过事件对象进行获取自定义数据。

步骤一:创建按钮

        打开微信开发者工具,找到“分类”,根据其路径,找到cate.wxml文件,在其中创建一个按钮,写入代码:


<view>
  <button>按钮</button>
</view>

步骤二:按钮样式配置

        找到cate.scss文件,对按钮样式进行配置:


view{
  display: flex;
  height: 300rpx;
  background-color: skyblue;
  align-items: center;
}

步骤三:创建事件处理函数

        找到cate.wxml文件,给其创建一个事件处理函数:


<view>
  <button bind:tap="btnHandler">按钮</button>
</view>

步骤四:进行事件传参

        事件传参,如果需要进行事件传参,需要再组件上通过 data- 的方式进行传递数据:


<view>
  <!-- 如果需要进行事件传参,需要再组件上通过 data- 的方式进行传递数据 -->
  <button bind:tap="btnHandler" data-id="1" data-name="tom">按钮</button>
</view>

步骤五:事件对象的打印

        如果想接受处理到的数据需要通过事件对象来进行,找到cate.js文件,进行事件对象的打印:


Page({
  // 给事件处理函数添加事件对象“event”
  btnHandler(event){
    // 打印事件对象
    console.log(event)
  },


})

步骤六:获取事件处理函数数据

currentTarget:事件绑定者,也就是,哪个组件绑定了当前事件处理函数。

target:事件触发者,也就是,哪个组件触发了当前事件处理函数。

1.  currentTarget 和 target 是指同一种组件数据获取

        currentTarget 和 target 都是指按钮,因为是按钮绑定的事件处理函数,同时点击按钮触发事件处理函数。这时候通过谁来获取数据都可以。


Page({
  // 给事件处理函数添加事件对象“event”
  btnHandler(event){
    // 打印事件对象
    console.log(event.currentTarget.dataset.id)
    console.log(event.target.dataset.name)
  },


})

2.  currentTarget 和 target 不是指同一种组件数据获取

         找到cate.wxml文件,对事件处理函数进行更改:


<view bind:tap="parentHandler" data-parentid="1" data-parentname="tom">
  <!-- 如果需要进行事件传参,需要再组件上通过 data- 的方式进行传递数据 -->
  <!-- <button bind:tap="btnHandler" data-id="1" data-name="tom">按钮</button> -->

  <button data-id="1" data-name="tom">按钮</button>
</view>

        找到cate.js文件,打印parentHandler此时的事件对象:

  parentHandler(event){
    // 点击蓝色区域(不点击按钮)
    // currentTarget 事件绑定者:view
    // target 事件触发者:view
    // currentTarget 和 target 都是指view,如果想获取 view 身上的数据,使用谁都可以
    console.log(event)

  }

2.1  点击蓝色区域(不点击按钮)

        currentTarget 事件绑定者:view

        target 事件触发者:view

        可以看到currentTarget 和 target 都是指view,如果想获取 view 身上的数据,使用谁都可以。

2.2  不点击蓝色区域(点击按钮)     

        currentTarget 事件绑定者:view

        target 事件触发者:按钮

  parentHandler(event){
    // 点击蓝色区域(不点击按钮)
    // currentTarget 事件绑定者:view
    // target 事件触发者:view
    // currentTarget 和 target 都是指view,如果想获取 view 身上的数据,使用谁都可以

    // 不点击蓝色区域(点击按钮)
    // currentTarget 事件绑定者:view
    // target 事件触发者:按钮
    // 如果想获取 view 身上的数据,就必须使用 currentTarget 才可以
    // 如果想获取的是时间触发者本身数据,就需要使用 target
    console.log(event)

  }
}) 

        如果想获取 view 身上的数据,就必须使用 currentTarget 才可以。

        如果想获取的是时间触发者本身数据,就需要使用 target。

3.  注意事项

        若是事件连续单词组成,例如将“data-parentid”改为“data-parent-id”:

<view bind:tap="parentHandler" data-parent-id="1" data-parentname="tom">
  <!-- 如果需要进行事件传参,需要再组件上通过 data- 的方式进行传递数据 -->
  <!-- <button bind:tap="btnHandler" data-id="1" data-name="tom">按钮</button> -->

  <button data-id="1" data-name="tom">按钮</button>
</view>

        在传递参数时,如果自定义属性是多个单词,单词与单词直接使用中划线 - 进行连接,在事件对象中会被转换为小托峰写法。

         若是事件连续单词组成改成小托峰写法,例如将“data-parentname”改为“data-parentName”:


<view bind:tap="parentHandler" data-parent-id="1" data-parentName="tom">
  <!-- 如果需要进行事件传参,需要再组件上通过 data- 的方式进行传递数据 -->
  <!-- <button bind:tap="btnHandler" data-id="1" data-name="tom">按钮</button> -->

  <button data-id="1" data-name="tom">按钮</button>
</view>

         在传递参数时,如果自定义属性是多个单词,单词如果使用小托峰写法,在事件对象中会被转换为全部小写。

微信小程序开发_时光の尘的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/427210.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

被通知回老家当农场主,没有经验的我用FarmOS系统抢先体验了一把!

网管小贾 / sysadm.cc 公司小Z过年回来就变得有点魔怔&#xff0c;工作积极性不高&#xff0c;天天话里话外总是唠叨着要辞职回老家种地&#xff01; 老板让我去劝劝他&#xff0c;强调务必对齐颗粒度&#xff0c;说劝好了给我记上一功。 我也不知道之前的那些功啥时候能变现…

【动态规划专栏】

动态规划基础知识 概念 动态规划&#xff08;Dynamic Programming&#xff0c;DP&#xff09;&#xff1a;用来解决最优化问题的算法思想。 动态规划是分治思想的延伸&#xff0c;通俗一点来说就是大事化小&#xff0c;小事化无的艺术。 一般来说&#xff0c;…

OpenAI钦点的“机器人界OpenAI”来了:成立不到两年估值破26亿美元

OpenAI们正在今年因AI而再次火热无比的机器人领域“复刻”一个OpenAI。 2024年2月23日&#xff0c;OpenAI、微软、贝佐斯风投、英伟达等总计18位投资公司向一家机器人公司注资了6.75亿美元&#xff0c;这家公司就是Figure AI。 Figure AI成立于2022年&#xff0c;两年不到经过…

(已解决)Unicode高位码点emoji表情无法解析

问题描述 我在制作游戏论坛项目&#xff0c;希望制作一个表情库&#xff0c;我参考了菜鸟的emoji手册&#xff0c;并且使fromCharCode函数来进行字符串转换&#xff0c;但是经过我的测试&#xff0c;对于超过5位数的高位码点&#xff0c;无法正常解析。 源码&#xff1a; &l…

WiFi模块引领零售数字化转型:智能零售体验再定义

随着科技的不断发展&#xff0c;零售业正迎来一场数字化转型的浪潮。在这个变革过程中&#xff0c;WiFi模块成为零售业中的关键技术&#xff0c;为商家提供了丰富的数字化工具&#xff0c;打造了更智能、便捷、个性化的零售体验。本文将深入探讨WiFi模块在零售数字化转型中的关…

学习使用paddle来构造hrnet网络模型

1、首先阅读了hrnet的网络结构分析&#xff0c;了解到了网络构造如下&#xff1a; 参考博文姿态估计之2D人体姿态估计 - &#xff08;HRNet&#xff09;Deep High-Resolution Representation Learning for Human Pose Estimation&#xff08;多家综合&#xff09;-CSDN博客 最…

Python的With...As 语句:优雅管理资源的技术探索【第116篇—With...As 语句】

Python的With…As 语句&#xff1a;优雅管理资源的技术探索 在Python编程中&#xff0c;with...as语句是一项强大而优雅的功能&#xff0c;用于管理资源&#xff0c;如文件、网络连接、数据库连接等。本文将深入介绍with...as语句的用法、其工作原理&#xff0c;并通过代码示例…

光子嫩肤仪面罩控制器PCB电路中升压恒流芯片FP7208的应用

护肤已经成为现代人日常生活中不可或缺的一部分&#xff0c;尤其对于追求美丽肌肤的人来说&#xff0c;寻找一款适合自己的护肤利器至关重要。 光子嫩肤仪作为一种高科技美容仪器&#xff0c;受到越来越多人的追捧。其中&#xff0c;FP7208LED升压驱动IC作为其核心部件之一&am…

TQ15EG开发板教程:创建运行petalinux2019.1

工程网盘链接&#xff1a;https://pan.baidu.com/s/1vFRpzmbifXt7GypU9aKjeg 提取码&#xff1a;0ylh 首先需要使用与petalinux相同版本的vivado创建工程&#xff0c;与之前不同的是在创建硬件设计时需要勾选上添加bit文件&#xff0c;所以要在生成bit文件之后再创建硬件设计…

谷粒商城【成神路】-【8】——商品上架

目录 1.数据模型封装 1.es数据模型 2.将es数据模型封装为JAVA bean 3.根据前端发送请求,编写controller 2.模型实现 2.1服务controller 2.2服务service 2.3服务远程调用接口 2.4检索服务controller 2.5检索服务保存到es 2.6库存查询服务 1.数据模型封装 1.es数据模…

银河麒麟之Workstation安装

一、VMware Workstation简介 VMware Workstation是一款由VMware公司开发的虚拟化软件&#xff0c;它允许用户在一台物理计算机上运行多个操作系统&#xff0c;并在每个操作系统中运行多个虚拟机。VMware Workstation提供了一个可视化的用户界面&#xff0c;使用户可以轻松创建、…

纵行科技荣登“中国物联网企业投资价值50强”、“中国物联网行业创新产品榜”

近日&#xff0c;由深圳市物联传媒有限公司、AIoT星图研究院、IOTE组委会、深圳市物联网产业协会主办的“2023‘物联之星’中国物联网行业年度榜单”评选结果正式公布。厦门纵行信息科技有限公司&#xff08;以下简称“纵行科技”&#xff09;最终从500多家参评企业中脱颖而出&…

数据库-ODBC操作

一、ODBC 数据源配置 打开ODBC数据源管理器&#xff1a; 在Windows搜索栏中键入“ODBC数据源”并选择“ODBC数据源(64位)”&#xff08;如果你的系统是64位的&#xff09;。如果你的系统是32位的&#xff0c;你可以选择“ODBC数据源(32位)”。或者&#xff0c;你可以在控制面…

使用DockerFile构建Tomcat镜像

1、准备镜像文件tomcat压缩包&#xff0c;jdk的压缩包 tomcat链接&#xff1a;https://pan.baidu.com/s/1Xpecb-BSGR2sdxSL7FDtBw?pwd1234 提取码&#xff1a;1234 jdk链接&#xff1a;https://pan.baidu.com/s/1mQHInn27j1I9uuuicBsyAA?pwd1234 提取码&#xff1a;1234 …

网工学习 DHCP配置-接口模式

网工学习 DHCP配置-接口模式 学习DHCP总是看到&#xff0c;接口模式、全局模式、中继模式。理解起来也不困难&#xff0c;但是自己动手操作起来全是问号。跟着老师视频配置啥问题没有&#xff0c;自己组建网络环境配置就是不通&#xff0c;悲催。今天总结一下我学习接口模式的…

信息系统安全与对抗-作业2

目录 1、使用自己姓名拼音创建一个账户&#xff0c; 并使用命令和图形化查看 2、使用自己拼音打头字母创建一个隐藏账户 &#xff0c;并使用命令和图形化查看 3、使用命令启动 telnet 服务 4、使用命令打开防火墙 23 端口 5、熟悉LINUX系统&#xff0c;使用命令行创建用户…

docker基线安全修复和容器逃逸修复

一、docker安全基线存在的问题和修复建议 1、将容器的根文件系统挂载为只读 修复建议&#xff1a; 添加“ --read-only”标志&#xff0c;以允许将容器的根文件系统挂载为只读。 可以将其与卷结合使用&#xff0c;以强制容器的过程仅写入要保留的位置。 可以使用命令&#x…

不同控制方式下的无人机二维码识别降落对比

无人机技术的快速发展正在推动众多行业的革新&#xff0c;从农业监测、灾害响应到城市规划和物流配送&#xff0c;无人机的应用前景无限广阔。随着应用场景的多样化&#xff0c;无人机精准降落成为一大挑战。基于PX4飞控固件和ROS系统的开源自主无人机平台Prometheus应运而生。…

【Linux】进程间通信之共享内存

文章目录 引入共享内存的原理共享内存的相关接口shmget()shmat()shmdt()shmctl() 共享内存的简单使用共享内存的特点 引入 进程间通信&#xff0c;顾名思义就是一个进程和另一个进程之间进行对话&#xff0c;以此完成数据传输、资源共享、通知事件或进程控制等。 众所周知&am…

Vscode安装,ssh插件与配置

原因 发现很多新人在练习linux&#xff0c;可是只有windows机的时候&#xff0c;一般都是下载虚拟机&#xff0c;然后在虚拟机上安装ubuntu等linux平台。每次需要在linux中写代码&#xff0c;就打开ubuntu&#xff0c;然后在终端上用vim写代码&#xff0c;或者先编辑代码文本&…