Siempre he pensado que en el desarrollo web, los eventos de doble clic rara vez se utilizan. Hasta hace poco, un proyecto necesitaba vincular dos eventos, hacer clic y hacer doble clic, a un botón. Al principio pensé que era solo una cuestión de vincular dos eventos al botón... pero luego me di cuenta de que pensé de manera demasiado simple. Cuando se activa el evento de doble clic, el evento de clic también se activa ~.
Después de investigar un poco, finalmente resolví el problema utilizando el método de ejecución retrasada "setTimeout" en JS para retrasar la ejecución del clic durante 300 milisegundos. El código es el siguiente:
Copie el código de código de la siguiente manera:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transicional//ES" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http ://www.w3.org/1999/xhtml"><head>
<título></título>
<mce:script src="jquery-1.6.min.js" mce_src="jquery-1.6.min.js" type="text/javascript"></mce:script>
<mce:tipo de script="texto/javascript">
<!--
$(función () {
varnum = 0;
var timeFunName = nulo;
$("botón").bind("clic", función () {
// Cancelar el método que no se ejecutó durante el último retraso
clearTimeout(timeFunName);
// Retraso de 300 milisegundos para ejecutar el clic
timeFunName = setTimeout(función () {
número++;
$("textarea").val($("textarea").val() + "ésimo" + num + "ésimo evento, nombre del evento: clic/n");
}, 300); }).bind("dblclick", función () {
// Cancelar el método que no se ejecutó durante el último retraso
clearTimeout(timeFunName);
número++;
$("textarea").val($("textarea").val() + "ésimo" + num + "ésimo evento, nombre del evento: doble clic/n");
});
});
// --></mce:script>
</cabeza>
<cuerpo>
<textarea rows="20" cols="50"></textarea><button type="button">Enviar</button></body></html>