vue點(diǎn)擊頁面空白處實(shí)現(xiàn)保存功能
功能描述
雙擊表格一行實(shí)現(xiàn)表格編輯,點(diǎn)擊空白處實(shí)現(xiàn)保存。
表格可編輯相關(guān)文章在可編輯表格
實(shí)現(xiàn)思路
當(dāng)表格在編輯狀態(tài)的時候在頁面進(jìn)行click監(jiān)聽,判斷點(diǎn)擊區(qū)域是否為編輯區(qū)域,如果不是編輯區(qū)域?qū)崿F(xiàn)保存功能并取消click監(jiān)聽
功能點(diǎn)一:頁面監(jiān)聽與取消接聽
// 通過addEventListener與removeEventListener實(shí)現(xiàn) document.addEventListener("click", function, false); document.removeEventListener("click", function, false);
功能點(diǎn)二:判斷點(diǎn)擊區(qū)域是否為可編輯區(qū)域
該功能點(diǎn)有一定難度,首先你需要判斷點(diǎn)擊區(qū)域是否為表格區(qū)域,其次你要判斷點(diǎn)擊的區(qū)域是否為編輯狀態(tài)的呢一行。所以我分為兩步去實(shí)現(xiàn)
1、判斷點(diǎn)擊區(qū)域是否為表格區(qū)域
該功能點(diǎn)通過 contains 接口實(shí)現(xiàn)。判斷條件為 tableDom.contains(target) ;該接口可以判斷target是否為tableDom的子節(jié)點(diǎn)。
// 首先通過addEventListener 傳入點(diǎn)擊的dom區(qū)域 document.addEventListener( "click", e => { this.judgeClickDom(e); }, false ); // this.bindClick是為了取消監(jiān)聽,下文會進(jìn)行描述 // 判斷點(diǎn)擊是否為table區(qū)域 judgeClickDom(e) { const { target } = e; let tableDom = document.getElementsByClassName("table"); // getElementsByClassName獲取到的是數(shù)組,一定要有下標(biāo)不然會報錯 // 如果我們點(diǎn)擊的區(qū)域在表格外保存數(shù)據(jù) if (!tableDom[0].contains(target)) { this.saveTableData(); } },
2.判斷點(diǎn)擊區(qū)域是否為編輯狀態(tài)的那一行
該功能借助了element框架, 如何標(biāo)記編輯狀態(tài)行,在可編輯表格中已有介紹
取消監(jiān)聽
由于我們監(jiān)聽click時使用的是箭頭函數(shù),沒有函數(shù)名或者函數(shù)表達(dá)式,所以在取消監(jiān)聽的時候會出現(xiàn)問題。 我的解決方案是給他綁定一個全局變量bindClick。 代碼如下
// 開始監(jiān)聽 document.addEventListener("click", (this.bindClick = e => { ... }) ); // 取消監(jiān)聽 document.removeEventListener("click", this.bindClick);
總結(jié)
以上所述是小編給大家介紹的vue點(diǎn)擊頁面空白處實(shí)現(xiàn)保存功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
- 解決vue 打包發(fā)布去#和頁面空白的問題
- vue項目打包后打開頁面空白解決辦法
- Vue下路由History模式打包后頁面空白的解決方法
- vue+webpack 打包文件 404 頁面空白的解決方法
- Vue 2.0在IE11中打開項目頁面空白的問題解決
- vue項目實(shí)現(xiàn)表單登錄頁保存賬號和密碼到cookie功能
- vue實(shí)現(xiàn)提示保存后退出的方法
- vue生成token保存在客戶端localStorage中的方法
- 詳解使用Vue Router導(dǎo)航鉤子與Vuex來實(shí)現(xiàn)后退狀態(tài)保存
- Vue中保存用戶登錄狀態(tài)實(shí)例代碼
相關(guān)文章
Vite圖片資源打包優(yōu)化的實(shí)現(xiàn)
本文主要介紹了Vite圖片資源打包優(yōu)化的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04JavaScript獲取echart曲線上任意點(diǎn)位的值詳解
這篇文章主要為大家介紹了JavaScript獲取echart曲線上任意點(diǎn)位的值詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09vue報錯Cannot?read?properties?of?undefined?(...)類型的解決辦法
這篇文章主要給大家介紹了關(guān)于vue報錯Cannot?read?properties?of?undefined?(...)類型的解決辦法,文中通過代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考借鑒價值,需要的朋友可以參考下2024-04-04vue-seamless-scroll 實(shí)現(xiàn)簡單自動無縫滾動且添加對應(yīng)點(diǎn)擊事件的簡單整理
vue-seamless-scroll是一個基于Vue.js的簡單無縫滾動組件, 基于requestAnimationFrame實(shí)現(xiàn),配置多滿足多樣需求,目前支持上下左右無縫滾動,單步滾動,及支持水平方向的手動切換功能,本節(jié)介紹,vue添加 vue-seamless-scroll實(shí)現(xiàn)自動無縫滾動的效果,并對應(yīng)添加點(diǎn)擊事件2023-01-01