La fonction Kill après cliquez sur l'événement JavaScript
J'ai une fonction que je veux être arrêté lorsque je lance un "proche" cliquez sur l'événement.
Le raisonnement derrière cela est quand je lance img.start
cliquez sur l'événement pour la deuxième fois, la fonction est appelée de nouveau et est maintenant en cours d'exécution à deux reprises.
La fonction en question est un diaporama, j'ai donc vraiment besoin de la fonction pour ne jamais être en cours d'exécution une fois sur une page.
Donc, juste pour être clair, quand je clique sur img.close
, je veux le BannerSlideshow
la fonction d'arrêt et de ne pas être en cours d'exécution plus.
Fonction de démarrage cliquez sur l'événement
$('img.start').click(function () {
BannerSlideshow.Init()
});
Fin de la fonction, cliquez sur événement
$('img.close').click(function () {
//stop function BannerSlideshow from running
});
Extrait de la fonction diaporama
var BannerSlideshow = (function () {
return {
Init: function () {
//slideshow functionality
}
J'ai mis à jour ma question pour être plus précis, les excuses les gars.
Vous devez vous connecter pour publier un commentaire.
vous pouvez le faire en utilisant bind () et unbind ()
OU
Vous pouvez utiliser Off()
$('img.close').bind
vous avez manqué la.
dans.bind
on()
au lieu de méthodes obsolètes tels quelive()
comme ils sont partis dans 1.9.1.bind
n'a pas été déprécié, encore et est toujours valable à ce point dans le temps. Aussi, comme toutes les autres méthodes de reliure, c'est à l'aide deon()
de toute façon derrière les coulisses.$('img.close').one('click',function () {...}); // unbinds itself after execution
.on()
derrière les scènes, mais c'est vraiment aucune excuse pour ne pas utiliser les fonctions correctes pour autant que je suis concerné. Il n'est pas inconcevable que.bind()
sera retiré à un certain point, la documentation officielle est dit que vous devez utiliser.on()
au lieu de cela, de sorte que vous devriez écrire nouvelles code de l'utiliser parce qu'il est susceptible de gagner du temps plus tard.on()
est préféré pas doit. Et non,bind
ne sera pas supprimé, sauf si elle est marquée comme obsolète en premier. À moins que quelque chose est marquée comme obsolète, vous êtes toujours très bien pour l'utiliser, même si, comme vous correctement l'a souligné, il est recommandé de suivre la documentation 🙂 Néanmoins, il ne fait pas l'utilisation debind()
à ce moment incorrect.utiliser ceci:
ou de l'utilisation sur.cliquez sur
et de les tuer à l'aide de
ou
mieux voir ici :http://api.jquery.com/category/events/event-handler-attachment/
vous pouvez utiliser la méthode. Off()
Pourquoi ne pas vous utilisez la fonction d'arrêt avec un booléen ?
});
si l'exécution de l' = true, utiliser la fonction stop() sinon start slide
Je pense que la fonction d'arrêt est mieux que de séparer les gestionnaires
Ce qui ne l'StartSlideshow fonction? Je suppose que vous pourriez avoir une variable globale pour exécuter le diaporama ou pas...
Et puis votre événement pourrait faire quelque chose comme :