移動端touch事件影響click事件的相關(guān)解決方法

上周做了一個項目,發(fā)現(xiàn)一個DOM元素觸發(fā)touch事件,竟然還會觸發(fā)別的元素的click事件。

我先描述一下彭谁,當時遇到的問題。項目初始狀態(tài)是下面這張圖:

我給右上方的的搜索按鈕允扇,綁定了一個touchstart事件缠局,點擊以后出現(xiàn)一個搜索框。至于為什么不直接綁定click事件考润,是因為touch事件響應更快狭园,交互上更加流暢糊治。

這個搜索框右邊的搜索按鈕妙啃,綁定了一個click事件,點擊后立即觸發(fā)搜索俊戳。

當給這兩個DOM元素都綁定好事件以后揖赴。我們分別用android和iphone手機進行測試,得到了一個共同的結(jié)果抑胎。

當手指接觸到搜索圖標燥滑,立即觸發(fā)了該元素的touchstart事件,下面的搜索框也隨之顯示阿逃。還沒有完铭拧,這時候手指還會觸發(fā)搜索按鈕的click事件,導致搜索框提交恃锉。

整個交互變成了搀菩,點擊搜索圖標,就觸發(fā)了搜索破托,這肯定不是我們想要的肪跋。

然后就查一些資料,得到了一些理論知識土砂。最重要的一個就是事件流的概念州既,點擊事件可以分解成多個事件。

在移動端萝映,手指點擊一個元素吴叶,會經(jīng)過:touchstart --> touchmove -> touchend --》click。

事件流本身會持續(xù)進行下去的序臂。

做了幾個demo驗證了一下蚌卤,上面的理論。

首先給一個元素同時綁定touchstart和click事件奥秆,看誰先觸發(fā)逊彭。

html:

.content{height:500px;background:#F00;}

var content = document.querySelector(".content");

content.addEventListener("touchend",function(){ ?content.style.background ="#0F0"; });

content.addEventListener("click",function(){ ?content.style.background ="#00F"; });

上面邏輯是給content類名的div,綁定一個touch事件和一個click事件吭练。分別讓div的背景色變成綠色和藍色诫龙。

手機測試一下,點擊一下鲫咽,div是先變成綠色然后又變成藍色签赃。

那能不能只觸發(fā)touch事件,不去觸發(fā)click事件呢分尸?查閱相關(guān)資料锦聊,發(fā)現(xiàn)了preventDefault()的方法,阻止事件的默認行為箩绍。

var content = document.querySelector(".content");

content.addEventListener("touchstart",function(e){? ? ?

? e.preventDefault();? ?

? content.style.background ="#0F0";

})

content.addEventListener("click",function(e){ ?content.style.background ="#00F"; });

通過preventDefault()方法孔庭,可以阻止后面事件的觸發(fā)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市圆到,隨后出現(xiàn)的幾起案子怎抛,更是在濱河造成了極大的恐慌,老刑警劉巖芽淡,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件马绝,死亡現(xiàn)場離奇詭異,居然都是意外死亡挣菲,警方通過查閱死者的電腦和手機富稻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來白胀,“玉大人椭赋,你說我怎么就攤上這事』蚋埽” “怎么了哪怔?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長廷痘。 經(jīng)常有香客問我蔓涧,道長,這世上最難降的妖魔是什么笋额? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任元暴,我火速辦了婚禮,結(jié)果婚禮上兄猩,老公的妹妹穿的比我還像新娘茉盏。我一直安慰自己,他們只是感情好枢冤,可當我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布鸠姨。 她就那樣靜靜地躺著,像睡著了一般淹真。 火紅的嫁衣襯著肌膚如雪讶迁。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天核蘸,我揣著相機與錄音巍糯,去河邊找鬼。 笑死客扎,一個胖子當著我的面吹牛祟峦,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播徙鱼,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼宅楞,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起厌衙,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤距淫,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后迅箩,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體溉愁,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年饲趋,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片撤蟆。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡奕塑,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出家肯,到底是詐尸還是另有隱情龄砰,我是刑警寧澤,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布讨衣,位于F島的核電站换棚,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏反镇。R本人自食惡果不足惜固蚤,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望歹茶。 院中可真熱鬧夕玩,春花似錦、人聲如沸惊豺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽尸昧。三九已至揩页,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間烹俗,已是汗流浹背爆侣。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留衷蜓,地道東北人累提。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像磁浇,于是被迫代替她去往敵國和親斋陪。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內(nèi)容