小程序-setdata-e.currentTarget.dataset和e.target.dataset


 

 

總結:

1、直接用“=”賦值,這種是可以修改,但無法改變頁面的狀態的,還會造成數據不一致

2、this.setData,setData 函數用於將數據從邏輯層發送到視圖層(異步),同時改變對應的 this.data 的值(同步)

3、微信小程序不支持jQuery和DOM操作修改樣式,但可以先寫兩套樣式然后使用三元運算符

4、e.currentTarget.dataset和e.target.dataset都可以獲取數據效果一樣,除非遇到了事件冒泡,

target:事件源組件對象(事件冒泡源頭)

currentTarget:當前組件對象(就是當前對象)

<view id="outter" bindtap="tap1">
   outer view
   <view id="middle" bindtap="tap2">
     middle view
     <view id="inner" bindtap="tap3">
       inner view
      </view>
   </view>
</view>



  tap1: function (e) {
    console.log(1, e)
  },
  tap2: function (e) {
    console.log(2, e)
  },
  tap3: function (e) {
    console.log(3, e)
  },
復制代碼

結果如下:

點擊子元素inner,但由於事件冒泡父元素middle和outter都觸發,從上圖中我們可以看出區別:

父元素middle和outter,target的id都是等於inner(子元素的id);

middle的currentTarget的id是middle,outter的currentTarget的id是outter; 

 

總結:

target:事件源組件對象(事件冒泡源頭)

currentTarget:當前組件對象(就是當前對象)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM