elementui 中的表格首列復選框的點擊事件


先上一張項目中的圖片:

 

 需求:

  1、點擊表格數據,會彈出一個問題詳細數據的面板表單數據,說明行點擊有一個事件。

  2、點擊首列復選框有一個 this.$message( ) 的提示操作彈框。

解析:

  點擊復選框首先不能事件冒泡,觸發表格的行點擊事件。一開始給復選框綁定的是 change 事件,達不到要求。后來綁定 click 事件,為了不事件冒泡,添加了 .stop ,后來觸發不了事件,上網搜解決方案,有網友建議加 .native ,即 

@click.stop.native="handleSelectionChange(scope.$index, scope.row)" ,發現事件觸發兩次,因為是點擊復選框要彈一個操作面板,事件觸發兩次就表示會彈兩次面板,不符合需求,后來搜了很多文章,無意間看到有網友提出要加 .prevent ,因為框架是封裝的,渲染的時候,會觸發 label 的事件,貌似是這樣,也不是很了解。就加了 .prevent ,即 
@click.native.prevent.stop="handleSelectionChange(scope.$index, scope.row)"后來發現事件雖然觸發了,但是復選框不選中,因為事件被阻止了。
  一開始卡在這里了很久,后來想明白了,點擊復選框后的效果是首先彈一個操作框,同時又不觸發表格的行點擊事件。目前來看這兩個要求都達到了。至於復選框選中不選中,可以根據表格數據加載的時候,處理一下ajax獲取到的表格數據,往數據里面添加 checked 屬性,來控制復選框是否被選中。
  所以,點擊復選框,彈一個操作框,如下圖:
  

 

  點擊確定按鈕之后,然后重新獲取表格數據,表格數據被改變,表格重新加載,可以達到復選框選中或者不選中的效果。

  至此,問題完美解決。

后語:

  文章啰嗦了點,如果你有碰到同樣的項目需求,或者碰到同樣的問題,希望這篇文章對踩坑的你有所幫助。

 

  


免責聲明!

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



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