js獲取鼠標點擊的對象,點擊另一個按鈕刪除該對象的實現(xiàn)代碼
今天遇到一個很奇葩的需求,是這樣的:當我點擊文字的時候彈出一個刪除按鈕,可以刪除剛才點擊的文字.
誒?當時想了想,沒什么難度吧.可是,既然是奇葩的需求怎么可能這么簡單.
對,還有一個功能.我并不知道我點了哪個標簽,英文可以承載文字的標簽太多太多....
當時我tm就懵逼了.你都不知道要點哪個標簽,我怎么去綁定事件?給誰綁定事件? 扯了半天,還是要寫.于是就動工了.
我思路是這樣的:
START
1,首先得獲取鼠標點擊的對象.(問題是...我怎么知道點了哪個)
那么先寫個函數(shù)去獲取鼠標點擊的對象吧

get_tag這個函數(shù)被綁定在body的onclick事件上,然后接受了一個event參數(shù);
然后event對象有個target屬性,是可以直接獲取鼠標點擊的對象.
我們log看看

恩,可以的.和預先的思路一致.得到了想要的結(jié)果.
2, 得到對象.可是要怎么刪除呢?
var del_tag = function(){
var tag=null;
return {
get:function(e){
tag = e;
},
del:function(){
$(tag).remove();
}
}
}
由于刪除按鈕和我們鼠標所點擊的對象并沒有什么聯(lián)系.所以我們得寫個閉包,聲明一個tag去保存我們所點擊的對象.
然后返回兩個函數(shù),一個get.用來獲取鼠標上次點擊的對象.一個是del.顧名思義,刪除點擊的對象.
由于是閉包,所以tag會被保存到內(nèi)存中.正好實現(xiàn)所要的功能.
3. 二者結(jié)合
var del_tag = function(){
var tag=null;
return {
get:function(e){
tag = e;
},
del:function(){
$(tag).remove();
}
}
}
var dt = del_tag();//把del_tag賦值給dt
function get_tag(e){
var ele = e.target;
//調(diào)用dt.get() 參數(shù)就是get_tag函數(shù)event參數(shù)的值的target
dt.get($(ele));
}
$('#del').click(function(){
//這里,由于創(chuàng)建了閉包.我們上次點擊的對象被保存了起來.
//所以這里可以直接調(diào)用dt.del() 刪除對象
dt.del();
})
4.看看效果


5.效果還不錯.可是..隨便點擊某個對象都可以刪除.這是不是就亂套了?接著改
var del_tag = function(){
var tag=null;
return {
get:function(e){
tag = e;
},
del:function(){
$(tag).remove();
}
}
}
var dt = del_tag();//把del_tag賦值給dt
function get_tag(e){
var ele = e.target;
$(ele).css('border','1px solid red')
var tagname = ele.tagName;
//定義一個tag數(shù)組. 用來存儲我們想刪除的對象
var tagarr = ['SPAN','H1','H2','H3','H4','H5','H6','P'];
//判斷如果我們點擊的對象 是不是我們數(shù)組里所聲明的,可以刪除的.
if(tagarr.indexOf(tagname) > -1){
//調(diào)用dt.get() 參數(shù)就是get_tag函數(shù)event參數(shù)的值的target
dt.get($(ele));
}
}
$('#del').click(function(){
//這里,由于創(chuàng)建了閉包.我們上次點擊的對象被保存了起來.
//所以這里可以直接調(diào)用dt.del() 刪除對象
dt.del();
})
看看效果:

恩恩.看來對了.不是我們所定義的對象就不可以刪除.
雖然和需求上說的刪除文字有點區(qū)別.但是只要你告訴我你會用那些標簽去承載文字.我就可以刪除...
強調(diào)一下.我們的get_tag()函數(shù)可以別放在body或者html的onclick事件上.不然整個頁面的文字一點就刪除了....
get_tag()函數(shù)就綁定在你想刪除文字那塊div上.
以上這篇js獲取鼠標點擊的對象,點擊另一個按鈕刪除該對象的實現(xiàn)代碼就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
- JS在Array數(shù)組中按指定位置刪除或添加元素對象方法示例
- js刪除對象/數(shù)組中null、undefined、空對象及空數(shù)組方法示例
- JavaScript數(shù)組,JSON對象實現(xiàn)動態(tài)添加、修改、刪除功能示例
- JS實現(xiàn)對json對象排序并刪除id相同項功能示例
- 在Javascript操作JSON對象,增加 刪除 修改的簡單實現(xiàn)
- JavaScript數(shù)組Array對象增加和刪除元素方法總結(jié)
- js delete 用法(刪除對象屬性及變量)
- javascript動態(tài)添加、修改、刪除對象的屬性與方法詳解
- Javascript根據(jù)指定下標或?qū)ο髣h除數(shù)組元素
- JS刪除對象中某一屬性案例詳解
相關(guān)文章
JS實現(xiàn)的將html轉(zhuǎn)為pdf功能【基于瀏覽器端插件jsPDF】
這篇文章主要介紹了JS實現(xiàn)的將html轉(zhuǎn)為pdf功能,結(jié)合完整實例形式分析了基于瀏覽器端插件jsPDF實現(xiàn)的HTML格式數(shù)據(jù)轉(zhuǎn)換成pdf具體操作技巧,需要的朋友可以參考下2018-02-02
JavaScript觸發(fā)onScroll事件的函數(shù)節(jié)流詳解
這篇文章的內(nèi)容是說說最近在工作中遇到過的常見的問題。主要是關(guān)于JavaScript觸發(fā)onScroll事件的函數(shù)節(jié)流,文中由一個常見的問題開始展開,一步步的介紹解決的方法,有需要的朋友們下面來跟著小編一起看看吧。2016-12-12
性能優(yōu)化篇之Webpack構(gòu)建速度優(yōu)化的建議
這篇文章主要介紹了性能優(yōu)化篇之Webpack構(gòu)建速度優(yōu)化的建議,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-04-04
jquery根據(jù)錨點offset值實現(xiàn)動畫切換
點擊后僵硬的切換是不是很不爽,下面為大家介紹的是根據(jù)錨點offset值來實現(xiàn)動畫切換,喜歡的朋友不要錯過2014-09-09
JavaScript實現(xiàn)語音排隊叫號系統(tǒng)
語音排隊叫號系統(tǒng)廣泛用于銀行,餐飲,醫(yī)院等場景。本文主要介紹了通過JavaScript實現(xiàn)的語音排隊叫號系統(tǒng),有掃碼排隊,語音叫號等功能。需要的可以參考一下2021-12-12

