我原以为微信按钮点击事件参与和web端一样。 这意味着您只需注明传递给事件的参数即可。 但是,通过这样的尝试,我们发现小程序的控制台报告了错误,并且在编写的bindtap中参数有误。 随后百度表示,小部件按钮单击此类事件时,常见的处理方式是标识元素所在的id,而bindtap只需注明函数名称。 例如,如果不写bindtap='setNumber ',而是写bindtap='setnumber(1),在js中为function(e ) e ) .则可以获取传递的元素的所有信息。
以下是我在百度上的资料。
什么是事件
事件是从视图层到逻辑层的通信方法。 事件可以将用户的行为反馈到逻辑级别进行处理。 事件可以绑定到组件,当达到触发事件时,将在逻辑级别执行相应的事件处理程序。 事件对象可以携带id、dataset、touches等其他信息。
看图,需要传递的数据很多,所以通过dataset携带了参数信息。 如果只有一个参数,可以按id传递
详细调查(以常见的tap点击为例) ) )。
wxml
view id=' tap test ' data-hi=' we chat ' bind tap=' tap name ' click me! /view 1 JS
页(tap name : function (event ) console.log (event ) ) 12345事件打印结果
{'type':'tap ',' timeStamp':895,////////////target } ' current target ' : //////////'y':14} ),' touches ' : [ { ' identifier ' :0,' pageX':53,' pageY':14,' 336053 } ' changed touches ' : [ { ' identifier ' :0,' pageX':53,' pageY':14,' clientX':53,' 根据需要- (图中的代码是为了自己的标记,所以第二个单词的首字母写得很大,但实际上也可以不用。 不能将对象存储在data-*属性中。
2、注意打印结果的目标和当前目标的区别。
target触发事件的源组件。 绑定到currentTarget事件的当前组件。
如果您将事件绑定并加入父容器,则当如意丝袜单击父容器时,绑定事件的组件和触发事件的源组件是同一个元素,因此currentTarget,target 当如意丝袜单击子元素时,target无法获得参数,因为它不是绑定事件的组件。 由于事件冒泡机制仍然会触发绑定到父容器的事件,因此currentTarget仍然可以获取参数。
id参数与dataset类似,但上次获取值时不同。 event.currentTarget.id