vue點擊頁面空白處實現(xiàn)保存功能
功能描述
雙擊表格一行實現(xiàn)表格編輯,點擊空白處實現(xiàn)保存。
表格可編輯相關(guān)文章在可編輯表格
實現(xiàn)思路
當(dāng)表格在編輯狀態(tài)的時候在頁面進行click監(jiān)聽,判斷點擊區(qū)域是否為編輯區(qū)域,如果不是編輯區(qū)域?qū)崿F(xiàn)保存功能并取消click監(jiān)聽
功能點一:頁面監(jiān)聽與取消接聽
// 通過addEventListener與removeEventListener實現(xiàn)
document.addEventListener("click", function, false);
document.removeEventListener("click", function, false);
功能點二:判斷點擊區(qū)域是否為可編輯區(qū)域
該功能點有一定難度,首先你需要判斷點擊區(qū)域是否為表格區(qū)域,其次你要判斷點擊的區(qū)域是否為編輯狀態(tài)的呢一行。所以我分為兩步去實現(xiàn)
1、判斷點擊區(qū)域是否為表格區(qū)域
該功能點通過 contains 接口實現(xiàn)。判斷條件為 tableDom.contains(target) ;該接口可以判斷target是否為tableDom的子節(jié)點。
// 首先通過addEventListener 傳入點擊的dom區(qū)域
document.addEventListener(
"click",
e => {
this.judgeClickDom(e);
},
false
);
// this.bindClick是為了取消監(jiān)聽,下文會進行描述
// 判斷點擊是否為table區(qū)域
judgeClickDom(e) {
const { target } = e;
let tableDom = document.getElementsByClassName("table");
// getElementsByClassName獲取到的是數(shù)組,一定要有下標不然會報錯
// 如果我們點擊的區(qū)域在表格外保存數(shù)據(jù)
if (!tableDom[0].contains(target)) {
this.saveTableData();
}
},
2.判斷點擊區(qū)域是否為編輯狀態(tài)的那一行
該功能借助了element框架, 如何標記編輯狀態(tài)行,在可編輯表格中已有介紹
取消監(jiān)聽
由于我們監(jiān)聽click時使用的是箭頭函數(shù),沒有函數(shù)名或者函數(shù)表達式,所以在取消監(jiān)聽的時候會出現(xiàn)問題。 我的解決方案是給他綁定一個全局變量bindClick。 代碼如下
// 開始監(jiān)聽
document.addEventListener("click",
(this.bindClick = e => {
...
})
);
// 取消監(jiān)聽
document.removeEventListener("click", this.bindClick);
總結(jié)
以上所述是小編給大家介紹的vue點擊頁面空白處實現(xiàn)保存功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
詳解vue2.0 不同屏幕適配及px與rem轉(zhuǎn)換問題
這篇文章主要介紹了詳解vue2.0 不同屏幕適配及px與rem轉(zhuǎn)換問題,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-02-02
elementUI如何動態(tài)給el-tree添加子節(jié)點數(shù)據(jù)children詳解
element-ui 目前基本成為前端pc網(wǎng)頁端標準ui框架,下面這篇文章主要給大家介紹了關(guān)于elementUI如何動態(tài)給el-tree添加子節(jié)點數(shù)據(jù)children的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-11-11
vuejs前后端數(shù)據(jù)交互之從后端請求數(shù)據(jù)的實例
今天小編就為大家分享一篇vuejs前后端數(shù)據(jù)交互之從后端請求數(shù)據(jù)的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08
vue項目前端微信JSAPI與外部H5支付相關(guān)實現(xiàn)過程及常見問題
這篇文章主要介紹了vue項目前端微信JSAPI與外部H5支付相關(guān)實現(xiàn)過程及常見問題,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
vue3實戰(zhàn)教程之a(chǎn)xios的封裝和環(huán)境變量
這篇文章主要給大家介紹了關(guān)于vue3實戰(zhàn)教程之a(chǎn)xios的封裝和環(huán)境變量的相關(guān)資料,文中通過實例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2022-02-02

