1、聲明一個全局的計時器變量如:clickTimer
2、在代理單擊事件里設置計時器,默認220毫秒之后觸發真正的單擊事件處理函數
3、在雙擊事件里判斷計時器變量,如果該變量不為NULL,則說明在觸發該雙擊事件前觸發了單擊事件,取消計時器,因為真正的單擊事件處理函數在220毫秒之后才會觸發,所以在這個時候結束定時器,則真正單擊事件處理函數不會被執行。
附上代碼:
1
var timerClick=null;
2
//單擊事件代理
3
function _onNodeClick(id){
4
//onNodeClick才是真正的單擊事件處理函數
5
timerClick=window.setTimeout("onNodeClick('"+id+"')",220);
6
}
7
//雙擊事件處理函數
8
function _onNodeDbClick(id){
9
if(timerClick){
10
window.clearTimeout(timerClick);
11
}
12
}

2

3

4

5

6

7

8

9

10

11

12
