天天看點

js區分click事件和mousedown、單擊和輕按兩下事件

一、點選和拖動

1、問題

對于同一個對象進行的操作涉及點選(click)和拖動(mousedown,mousemove,mouseup),而拖動中又會觸發一次點選事件

2、解決:設定全局變量判斷點選之後是否移動

點選事件: mousedown–>mouseup

拖動事件: mousedown–>mousemove–>mouseup

var ismove;
function mousedown(){
	ismove = false;
}
function mousemove(){
	ismove = true;
}
function mouseup(){
	if(ismove){
		拖動...
	}else{
		點選
	}
}
           

二、單擊和輕按兩下

1、問題

輕按兩下事件會觸發一次單擊和一次輕按兩下,現在隻需要

2、解決

//定義setTimeout執行方法
  var time = null;
  
  $('div').click(function () {
      // 取消上次延時未執行的方法
      clearTimeout(time);
      //執行延時
      TimeFn = setTimeout(function(){
          //do function在此處寫單擊事件要執行的代碼
     },300);
 });
 
 $('div').dblclick(functin () {
      // 取消上次延時未執行的方法
     clearTimeout(time);
     //輕按兩下事件的執行代碼
 })