Maison >interface Web >js tutoriel >jQuery empêche le double-clic de plusieurs soumissions et le passage de fonctions dynamiques ou de plusieurs paramètres_jquery

jQuery empêche le double-clic de plusieurs soumissions et le passage de fonctions dynamiques ou de plusieurs paramètres_jquery

WBOY
WBOYoriginal
2016-05-16 16:53:411152parcourir

Aujourd'hui, j'écris sur le problème de l'événement double-clic de JQ empêchant les soumissions multiples. Il peut être défini par lots via des fonctions, ce qui le rend plus polyvalent et lie dynamiquement les événements des éléments via des méthodes. Et vous pouvez transmettre dynamiquement des noms de fonctions ou plusieurs paramètres (cet exemple transmet uniquement le nom de la fonction et l'appelle via Eval).

Nous savons tous que dans la liaison d'événement de jQuery, deux événements de clic (click) peuvent être déclenchés lors de l'exécution d'un événement de double-clic (dblclick). Autrement dit, un élément d'étiquette (tel que div, etc.), si l'élément est lié à la fois à un événement de clic (click) et à un événement de double-clic (dblclick), alors lorsque l'événement de clic (click) est exécuté, le L'événement de double-clic (dblclick) ne sera pas déclenché, et l'événement de double-clic ne sera pas déclenché (dblclick) déclenchera deux événements de clic (clic).

Premier coup d'oeil à la séquence d'exécution des événements de clic :

Clic (clic) : mousedown, mouseout, clic ;
Double-clic (dblclick) : mousedown, mouseout, clic, mousedown ; , mouseout , click, dblclick;

Dans l'événement double-clic (dblclick), parmi les deux événements clic (click) déclenchés, le premier événement clic (click) sera bloqué, mais le second ne le sera pas réunion. C'est-à-dire qu'un événement de double-clic (dblclick) renverra un résultat d'événement de clic (clic) et un résultat d'événement de double-clic (dblclick). Au lieu du résultat d'un événement de double-clic (dblclick) et du résultat de deux événements de clic (clic).

Dans ce cas, éliminez simplement l'événement de clic supplémentaire (clic) et le problème sera résolu.

L'effet est le suivant :
http://images.cnitblog.com/i/554071/201404/010846579687197.png
Le code source est le suivant :

Copier le code Le code est le suivant :





jQuery empêche l'exécution et la diffusion du double-clic plusieurs fois Méthode de fonction dynamique




Afficher les résultats du test :

Cliquez sur moi

javascript">

function std (obj,vs){
var TimeFn = null;
var funs=$(obj).attr("onclick");
$(obj ).click(function() {
clearTimeout(TimeFn);
TimeFn = setTimeout(function(){
eval(funs);
clearTimeout(TimeFn);
}, 400) ;
});

$(obj).dblclick(function() {
clearTimeout(TimeFn);
$(obj).removeAttr("onclick); ");
}

var ss1=function(s){$("#show").html("DIV affiche les résultats des tests :" s);alert("a");}; //Méthode appelée par div
var ss2=function(s){$("#show").html("INPUT affiche les résultats du test :" s);alert("b");};//Méthode appelée by input

//Liaison dynamique des événements d'éléments via des méthodes
std("#div","div");
std("#but1","button1");

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn