comment se lier à la fois flou et de changement, mais seulement déclencher une fonction une fois en Jquery/Javascript?
Je suis en train de déclencher une fonction lorsque vous sélectionnez un élément est modifié.
Depuis l'Ipad est d'avoir du mal avec le ("changement"), j'ai aussi envie de se lier à 'blur', qui fonctionne très bien sur Ipad.
Mais je ne veux pas les deux événements pour déclencher la fonction deux fois, donc j'ai besoin d'une sorte de crochet pour s'assurer si les deux changement et flou déclencheur, que la fonction sous-jacente n'est déclenché une fois.
C'est ce que je fais maintenant, mais ... c'est pas très agréable:
//make sure binding is only assigned once
var compSel = $('#my_select');
if ( compSel.jqmData('bound') != true ){
console.log("bound");
compSel.jqmData('bound', true)
.on( $.support.touch ? 'blur' : 'change', function(){
console.log("trigger");
//run function xyz
})
}
Cela fonctionne si vous pouvez vivre avec tous palpable périphériques à faire avec flou.
Question:
Quelqu'un a une meilleure idée de faire en sorte de flou et de changement de déclencher une fonction à la fois?
Merci pour l'aide!
OriginalL'auteur frequent | 2012-07-05
Vous devez vous connecter pour publier un commentaire.
Essayer de créer une fonction, lié à ces deux événements, et l'ajout d'un délai d'attente pour appeler la fonction. De cette façon, si la fonction est appelée plusieurs fois, il sera exécuté qu'une fois.
Quelque chose comme ceci (vous pouvez régler le délai d'attente si nécessaire):
yah. Aussi l'approche que je vais prendre. Merci!
Si l'action d'ouvrir une nouvelle page, une fois l'utilisateur de revenir à la page d'origine, le délai sera écoulé et en cliquant sur la page, il va déclencher l'effet de flou de l'événement.
OriginalL'auteur Rocket Hazmat
ne sais pas à propos de l'ipad, mais sur le navigateur peut-être quelque chose comme ceci
OriginalL'auteur max4ever
Ce n'est pas agréable, mais vous pouvez appeler pour
change
dans leblur
fonction, et de faire tous les trucs dans lechange
fonction:Il n'a pas l'air bien, mais je pense que cela devrait fonctionner.
EDIT: Si le navigateur lance les deux événements (le flou et le changement), ce code appel deux fois à la
change
fonctionnalité. Je pense que vous pouvez obtenir ce comportement avec une sorte de drapeau:IMO, si vous faites ce changement et le flou peut encore être appelé depuis Le changement est encore déclaré. Le changement peut être déclenchée par itselft et par le flou de la fonction.
vous êtes complètement à droite
OriginalL'auteur Vithozor
Joindre plusieurs événements vous pouvez l'utiliser comme ça aussi
OriginalL'auteur Vivek
Dans le cas que les deux événements sont toujours déclenché, nous pouvons définir un indicateur pour le premier déclencheur et d'exécuter le script. Le deuxième déclenchement de voir le drapeau et clair, et le retourner de sorte qu'il s'exécute uniquement la première fois.
Dans ce cas, vous pouvez flou plusieurs fois sans faire un changement, de sorte qu'il ne fonctionnera que toutes les autres fois. Si il y a un changement, alors il devrait fonctionner pour sûr (si l'indicateur est allumé ou éteint).
OriginalL'auteur Frank Forte
Vous pouvez lier à plusieurs événements en même temps:
OriginalL'auteur bokonic