vue點(diǎn)擊頁面空白處實(shí)現(xiàn)保存功能
功能描述
雙擊表格一行實(shí)現(xiàn)表格編輯,點(diǎn)擊空白處實(shí)現(xiàn)保存。
表格可編輯相關(guān)文章在可編輯表格
實(shí)現(xiàn)思路
當(dāng)表格在編輯狀態(tài)的時(shí)候在頁面進(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)不然會報(bà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ù)名或者函數(shù)表達(dá)式,所以在取消監(jiān)聽的時(shí)候會出現(xiàn)問題。 我的解決方案是給他綁定一個(gè)全局變量bindClick。 代碼如下
// 開始監(jiān)聽
document.addEventListener("click",
(this.bindClick = e => {
...
})
);
// 取消監(jiān)聽
document.removeEventListener("click", this.bindClick);
總結(jié)
以上所述是小編給大家介紹的vue點(diǎn)擊頁面空白處實(shí)現(xiàn)保存功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
- 解決vue 打包發(fā)布去#和頁面空白的問題
- vue項(xiàng)目打包后打開頁面空白解決辦法
- Vue下路由History模式打包后頁面空白的解決方法
- vue+webpack 打包文件 404 頁面空白的解決方法
- Vue 2.0在IE11中打開項(xiàng)目頁面空白的問題解決
- vue項(xiàng)目實(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)文章
詳解vue2.0 不同屏幕適配及px與rem轉(zhuǎn)換問題
這篇文章主要介紹了詳解vue2.0 不同屏幕適配及px與rem轉(zhuǎn)換問題,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-02-02
elementUI如何動態(tài)給el-tree添加子節(jié)點(diǎn)數(shù)據(jù)children詳解
element-ui 目前基本成為前端pc網(wǎng)頁端標(biāo)準(zhǔn)ui框架,下面這篇文章主要給大家介紹了關(guān)于elementUI如何動態(tài)給el-tree添加子節(jié)點(diǎn)數(shù)據(jù)children的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11
vue?項(xiàng)目優(yōu)雅的對url參數(shù)加密詳解
這篇文章主要為大家介紹了vue?項(xiàng)目優(yōu)雅的對url參數(shù)加密詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10
vuejs前后端數(shù)據(jù)交互之從后端請求數(shù)據(jù)的實(shí)例
今天小編就為大家分享一篇vuejs前后端數(shù)據(jù)交互之從后端請求數(shù)據(jù)的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08
vue項(xiàng)目前端微信JSAPI與外部H5支付相關(guān)實(shí)現(xiàn)過程及常見問題
這篇文章主要介紹了vue項(xiàng)目前端微信JSAPI與外部H5支付相關(guān)實(shí)現(xiàn)過程及常見問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
vue3實(shí)戰(zhàn)教程之a(chǎn)xios的封裝和環(huán)境變量
這篇文章主要給大家介紹了關(guān)于vue3實(shí)戰(zhàn)教程之a(chǎn)xios的封裝和環(huán)境變量的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-02-02

