On a toujours pensé que dans le développement Web, les événements de double-clic étaient rarement utilisés. Jusqu'à récemment, le projet devait lier deux événements, un clic et un double-clic, à un bouton. Au début, je pensais qu'il s'agissait simplement de lier deux événements au bouton... mais plus tard, j'ai réalisé que je pensais trop simplement. Lorsque l'événement double-clic est déclenché, le clic sera également déclenché ~.
Après quelques recherches, j'ai finalement résolu le problème en utilisant la méthode d'exécution différée "setTimeout" dans JS pour retarder l'exécution du clic de 300 millisecondes. Le code est le suivant :
Copiez le code comme suit :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http http://www.w3.org/1999/xhtml"><head>
<titre></titre>
<mce:script src="jquery-1.6.min.js" mce_src="jquery-1.6.min.js" type="text/javascript"></mce:script>
<mce:script type="text/javascript">
<!--
$(fonction () {
var num = 0 ;
var timeFunName = null ;
$("bouton").bind("clic", fonction () {
// Annule la méthode qui n'a pas été exécutée lors du dernier délai
clearTimeout(timeFunName);
// Délai 300 millisecondes pour exécuter le clic
timeFunName = setTimeout (fonction () {
num++;
$("textarea").val($("textarea").val() + "th" + num + "ème événement, nom de l'événement : clic/n");
}, 300); }).bind("dblclick", fonction () {
// Annule la méthode qui n'a pas été exécutée lors du dernier délai
clearTimeout(timeFunName);
num++;
$("textarea").val($("textarea").val() + "th" + num + "ème événement, nom de l'événement : double-clic/n");
});
});
// --></mce:script>
</tête>
<corps>
<textarea rows="20" cols="50"></textarea><button type="button">Envoyer</button></body></html>