0

下图是我的代码,写了一个gotoDetails事件,打印 e 结果发现只带出了本级标签data-定义的属性值,子元素的没带出来,但是在另一个页面里面也有类似的写法带出来了,不明白原因,求各路大神解答,谢谢啦!!!



下面是另一个页面的单选,radioChange1事件能带出来data-name


由于没找到微信小程序的标签,只能填了Javascript,望谅解

1 个回答

0

已采纳

首先我要说下target和currentTarget的区别。
e.target是返回触发事件的对象 e.currentTarget返回的是绑定事件的对象。
认真看这段话:
通常情况下target和currentTarget是一致的,我们只要使用target即可,但有一种情况必须区分这两者的关系,那就是在父子嵌套的关系中,父元素绑定了事件,单击了子元素(根据事件流,在不阻止事件流的前提下他会传递至父元素,导致父元素的事件处理函数执行),这时候currentTarget指向的是父元素,因为他是绑定事件的对象,而target指向了子元素,因为他是触发事件的那个具体对象 。
在你的第一种情况中,可能触发这个事件的并非是这个子元素。所以也就没有返回你想要的那个target。
而在你的第二种情况中,可能恰巧触发这个事件的就是含有data-name的这个text标签,所以也就返回了你想看到的那个target