Js jq single click and double click distinguish the sample introduction
- 2020-03-26 23:02:13
- OfStack
I. principle:
Let's take a look at the sequence of click events:
Mousedown, mouseout, click;
Double click (dblclick) : mousedown, mouseout, click, mousedown, mouseout, click, dblclick;
In a double click event (dblclick), the first click is masked, but not the second click. That is, a double-click event (dblclick) returns both a single-click event (click) result and a double-click event (dblclick) result. Instead of a double click event (dblclick) result and a double click event result (click).
In this case, the problem is solved by eliminating the extra one-click event.
setTimeout
Ii. Code:
Let's take a look at the sequence of click events:
Mousedown, mouseout, click;
Double click (dblclick) : mousedown, mouseout, click, mousedown, mouseout, click, dblclick;
In a double click event (dblclick), the first click is masked, but not the second click. That is, a double-click event (dblclick) returns both a single-click event (click) result and a double-click event (dblclick) result. Instead of a double click event (dblclick) result and a double click event result (click).
In this case, the problem is solved by eliminating the extra one-click event.
setTimeout
Ii. Code:
//Define the setTimeout execution method
var TimeFn = null;
$('div').click(function () {
//Cancels methods that were not executed last delay
clearTimeout(TimeFn);
//Execution time delay
TimeFn = setTimeout(function(){
//The do function here writes the code to execute for the click event
},300);
});
$('div').dblclick(functin () {
//Cancels methods that were not executed last delay
clearTimeout(TimeFn);
//Double-click the execution code for the event
})