js關于blur事件阻塞click事件

出現場景:
頁面有一個輸入框A綁定了blur事件澄暮,且這個事件里面需要用到ajax請求數據蝌以,然后有一個按鈕B綁定了點擊事件糊啡;
在A里面輸入完信息后, 還沒失去焦點的時候點擊B豪娜,這個時候發(fā)現只執(zhí)行了A的blur事件餐胀,而B的click事件沒有觸發(fā)。(ps: 若blur事件 僅僅只是普通操作瘤载,沒有ajax異步請求的話 是沒問題的)

<el-button @click="clickTest">失焦點擊測試</el-button>
<el-input @blur="blurTest" placeholder="失焦點擊測試"></el-input>
// -----------------------
clickTest(){
    console.log('clickTest');
},
blurTest(){
    console.log('blurTest');
}
// -----------------------
// 結果正常:
// blurTest
// clickTest
blurTest(){
    console.log('blurTest');
    this.$ajax.get('/test')
        .then(res=>{
            console.log('blur請求完成')
        })
}
// 結果:(不會執(zhí)行點擊事件)
// blurTest
// blur請求完成

網上搜到的三種解決辦法,(個人覺得都不適合):
1.blur事件加延時否灾,讓click先執(zhí)行,缺點:click事件雖然執(zhí)行了惕虑,但是在blur請求完成前執(zhí)行的坟冲,不能獲取到blur請求后的最新數據(pass)
2.給按鈕B加個mousedown磨镶,并在mousedown里面阻止默認事件e.preventDefault()溃蔫,因為mousedown會優(yōu)先于blur事件。缺點:這樣點擊事件會執(zhí)行琳猫,但是blur事件不會觸發(fā)(pass)

另外伟叛,若是在vue ui框架element-ui上的標簽加事件,@mousedown需要加上.native關鍵字脐嫂,不然不會觸發(fā)

3.按鈕B上的點擊事件換成mousedown事件统刮,這樣兩者都會執(zhí)行,但是mousedown(原click)先執(zhí)行账千,類似第一種加延時處理侥蒙。缺點:除了第一點說的,mousedown事件會在鼠標按下去的一瞬間執(zhí)行匀奏,不是很友好鞭衩。(pass)

發(fā)現上面三種都不好用,于是本人想到娃善,能不能在點擊的時候獲取到鼠標點了誰论衍,如果被點擊的元素有click事件,再在blur的回調函數里面執(zhí)行(以下方法若有不合適的地方聚磺,希望給與指出)

clickTest(){
    console.log('clickTest');
    this.$ajax.get('/test')
        .then(res=>{
            console.log('click請求完成')
        })
},
blurTest(){
    console.log('blurTest');
    this.$ajax.get('/test')
        .then(res=>{
            console.log('blur請求完成')
            if(arguments[0] && arguments[0].relatedTarget && arguments[0].relatedTarget.click){
                arguments[0].relatedTarget.click();
            }
        })
},
// -----------------------------
// 結果OK:
// blurTest
// blur請求完成
// clickTest
// click請求完成
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末坯台,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子瘫寝,更是在濱河造成了極大的恐慌蜒蕾,老刑警劉巖稠炬,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異滥搭,居然都是意外死亡酸纲,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進店門瑟匆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來闽坡,“玉大人,你說我怎么就攤上這事愁溜〖残幔” “怎么了?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵冕象,是天一觀的道長代承。 經常有香客問我,道長渐扮,這世上最難降的妖魔是什么论悴? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮墓律,結果婚禮上膀估,老公的妹妹穿的比我還像新娘。我一直安慰自己耻讽,他們只是感情好察纯,可當我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著针肥,像睡著了一般饼记。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上慰枕,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天具则,我揣著相機與錄音,去河邊找鬼具帮。 笑死博肋,一個胖子當著我的面吹牛,可吹牛的內容都是我干的匕坯。 我是一名探鬼主播束昵,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼葛峻!你這毒婦竟也來了锹雏?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤术奖,失蹤者是張志新(化名)和其女友劉穎礁遵,沒想到半個月后轻绞,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡佣耐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年政勃,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片兼砖。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡奸远,死狀恐怖,靈堂內的尸體忽然破棺而出讽挟,到底是詐尸還是另有隱情懒叛,我是刑警寧澤,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布耽梅,位于F島的核電站薛窥,受9級特大地震影響,放射性物質發(fā)生泄漏眼姐。R本人自食惡果不足惜诅迷,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望众旗。 院中可真熱鬧罢杉,春花似錦、人聲如沸逝钥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽艘款。三九已至,卻和暖如春沃琅,著一層夾襖步出監(jiān)牢的瞬間哗咆,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工益眉, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留晌柬,地道東北人。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓郭脂,卻偏偏與公主長得像年碘,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子展鸡,可洞房花燭夜當晚...
    茶點故事閱讀 45,675評論 2 359