Klick und Doppelklick-Event auf dasselbe Element per JS abfangen
Die folgende jQuery-Funktion von Jacek Becela (http://gist.github.com/399624) erlaubt das Abfangen von Klick- und Doppelklick-Events auf ein Element. Werden beide Events mit den jQuery-Standardfunktionen gesetzt, so wird das Klick-Event auch bei Doppelklicks ausgeführt. Sollen beide Events getrennt behandelt werden hilft der folgende Code. Dieser wertet in <= 300ms hintereinanderfolgende Klicks als Doppelklick alle anderen als einfache Klicks.
Aufruf
jQuery("a.doubleclick").single_double_click(function(){
alert("single click");
}, function(){
alert("double click");
});
Code
// 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);
}
});
});
}