chrome下判斷點(diǎn)擊input上標(biāo)簽還是其余標(biāo)簽的實(shí)現(xiàn)方法
想要實(shí)現(xiàn)的功能:當(dāng)input框失焦且點(diǎn)擊的不是清除鍵時(shí),執(zhí)行reset方法重置input樣式,當(dāng)點(diǎn)擊清除鍵時(shí),執(zhí)行clear方法,清除input內(nèi)容。
如圖

本想通過(guò)如下代碼來(lái)實(shí)現(xiàn)
$(".search-input").focusout(function () {
if (document.activeElement.className !== 'close-t') {//close-t為清除鍵類名
$('.search-input').addClass('search-before');
$('.close').css('display', 'none');
document.getElementById('search').value = '';
}
});
以外的發(fā)現(xiàn),當(dāng)inpu框失焦后,首先獲得焦點(diǎn)的,竟是body標(biāo)簽,也因?yàn)檫@樣,該方法失效了,最后采用以下代碼來(lái)實(shí)現(xiàn)的該功能
$("#search").focusout(function () {
//判斷失焦后是否點(diǎn)擊的是清除鈕,若是則不重置
var tapCloseButton = false;
$('.close-t').focus(function () {
tapCloseButton = true;
});
setTimeout(function () {
if (!tapCloseButton) {
$('.search-input').addClass('search-before');
$('.close').css('display', 'none');
document.getElementById('search').value = '';
}
},10);
});
將焦點(diǎn)判斷這一步驟延遲執(zhí)行,故此時(shí)焦點(diǎn)已經(jīng)從body上移到了真正所點(diǎn)擊的元素上,此時(shí)再對(duì)焦點(diǎn)進(jìn)行判斷,看是否為清除鍵。
以上這篇chrome下判斷點(diǎn)擊input上標(biāo)簽還是其余標(biāo)簽的實(shí)現(xiàn)方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
js與jQuery實(shí)現(xiàn)的用戶注冊(cè)協(xié)議倒計(jì)時(shí)功能實(shí)例【三種方法】
這篇文章主要介紹了js與jQuery實(shí)現(xiàn)的用戶注冊(cè)協(xié)議倒計(jì)時(shí)功能,結(jié)合實(shí)例形式分析了三種倒計(jì)時(shí)功能的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-11-11
JS實(shí)現(xiàn)1000以內(nèi)被3或5整除的數(shù)字之和
今天在技術(shù)群里看到一道這樣的提:求1000以內(nèi)被3或5整除的數(shù)字之和。小編把我的解決辦法分享到腳本之家平臺(tái),供大家參考2016-02-02
HTML中使背景圖片自適應(yīng)瀏覽器大小實(shí)例詳解
這篇文章主要介紹了HTML中使背景圖片自適應(yīng)瀏覽器大小實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-04-04
JS去除字符串的空格增強(qiáng)版(可以去除中間的空格)
之前發(fā)了不少了去除字符串空格的代碼,但都是去除開(kāi)始與結(jié)尾的,下面的這段代碼可以去除中間的。2009-08-08
基于JavaScript短信驗(yàn)證碼如何實(shí)現(xiàn)
我們?cè)谑褂靡苿?dòng)、電信等運(yùn)營(yíng)商網(wǎng)上營(yíng)業(yè)廳的時(shí)候,為確保業(yè)務(wù)的完整和正確性,經(jīng)常會(huì)需要用到短信的驗(yàn)證碼。最近因?yàn)槟呈I(yè)務(wù)需要,也做了個(gè)類似的功能2016-01-01
javascript 大中小字體顯示實(shí)現(xiàn)代碼
有時(shí)候頁(yè)面中的正文一般都加上了字體大中小控制代碼,方便瀏覽者閱讀。2010-09-09

