Skip to content

Instantly share code, notes, and snippets.

@ncr
Created May 13, 2010 08:30
Show Gist options
  • Star 26 You must be signed in to star a gist
  • Fork 9 You must be signed in to fork a gist
  • Save ncr/399624 to your computer and use it in GitHub Desktop.
Save ncr/399624 to your computer and use it in GitHub Desktop.
Code
$("button").single_double_click(function () {
alert("Try double-clicking me!")
}, function () {
alert("Double click detected, I'm hiding")
$(this).hide()
})
Markup
<button>Click Me!</button>
// Author: Jacek Becela
// Source: http://gist.github.com/399624
// License: MIT
jQuery.fn.single_double_click = function(single_click_callback, double_click_callback, timeout) {
return this.each(function(){
var clicks = 0, self = this;
jQuery(this).click(function(event){
clicks++;
if (clicks == 1) {
setTimeout(function(){
if(clicks == 1) {
single_click_callback.call(self, event);
} else {
double_click_callback.call(self, event);
}
clicks = 0;
}, timeout || 300);
}
});
});
}
@dereklucas
Copy link

In case anyone wants it I popped this into a JSfiddle to play with it easier:
http://jsfiddle.net/mBYPD/

@aneudy1702
Copy link

very useful piece of code! I just adapted it so it makes my html5 videos go full screen on android devices. Thanks a lot for sharing!

@kongya
Copy link

kongya commented Sep 19, 2013

jQuery(this).dblclick(function(event) {
jQuery(this).click().click();
});
Then manual dblclick trigger the double_click_callback.

@romiras
Copy link

romiras commented Sep 11, 2014

@vnnvanhuong
Copy link

Thanks a lot for sharing. It solved my issue too that's related to the events "rowDblselect" and "rowSelect" of Primefaces' dataTable. :)

@lvzhenbang
Copy link

it's a good idea. but test result is when IE< 9 has a problem.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment