一直以為JavaScript中單擊和雙擊是獨(dú)立的备籽,直到有一天,遇到了單雙擊執(zhí)行不同的代碼時(shí)分井,才發(fā)現(xiàn)车猬。。尺锚。
畢竟雙擊就是兩次單擊珠闰,所以在雙擊的第一擊時(shí),會觸發(fā)單擊的事件的瘫辩,但是在第一擊時(shí)通過setTimeout來延遲單擊執(zhí)行的代碼伏嗜,當(dāng)延遲的時(shí)間內(nèi)如有第二擊坛悉,那就是雙擊了吧,在雙擊監(jiān)聽那里停掉單擊延遲執(zhí)行的代碼承绸,這樣就能區(qū)分開單擊雙擊事件了裸影,不過注意設(shè)置延遲的時(shí)間要適合。
//定義setTimeout執(zhí)行方法
var Timeone = null;
$('body').click(function() {
// 取消上次延時(shí)未執(zhí)行的方法
clearTimeout(Timeone);
//執(zhí)行延時(shí)
Timeone = setTimeout(function() {
//do function在此處寫單擊事件要執(zhí)行的代碼
console.log(111);
}, 500);//延遲的時(shí)間為500ms
});
$('body').dblclick(function() {
// 取消上次延時(shí)未執(zhí)行的方法
clearTimeout(Timeone);
//雙擊事件的執(zhí)行代碼
console.log(222);
});
代碼來自網(wǎng)上并根據(jù)自己需要加以更改军熏,侵刪轩猩。