JQuery transmettre à la fonction
J'ai besoin d'envoyer this
à la capIn() et capOut() les fonctions de sorte que je peux cibler les enfants les divs de la corriger .diapositive. Comment puis-je passer this
à une fonction. this
serait ce qui est de son survol.
$(".slide").hover(function(){capIn();capOut();});
C'est que votre code? Êtes-vous à ne rien faire, mais l'appel de ces fonctions? Avez-vous vraiment envie de les avoir tous les deux appelé pour la
mouseenter
et mouseleave
événements?OriginalL'auteur Jonathan Eckman | 2012-02-10
Vous devez vous connecter pour publier un commentaire.
En regardant les noms de fonction
capIn
etcapOut
il est logique qu'ils sont 2 comportements différents. Je crois vous avoir 2 comportements différents surmouseenter
etmouseleave
événements.hover
méthode peut prendre 2 méthodes, une pourmouseenter
et un autre pourmouseleave
. Vous pouvez essayer cetteVous pouvez utiliser
this
à l'intérieur decapIn
etcapOut
il sera le point de.slide
élément qui vous a plané sur.Je crois que c'est l'ultime exigence de l'OP.
Notez que votre code ne font pas la même chose que pour l'OP du code. L'OP est d'appeler les deux fonctions à la fois
mouseenter
etmouseleave
. Votre code d'appelcapIn
surmouseenter
, etcapOut
surmouseleave
. Maintenant, à partir du nom de l'OP de fonctions, qui peuvent être ce qu'ils veulent réellement, mais j'aurais quand même le souligner.En regardant les noms de fonction
capIn
etcapOut
il est logique qu'ils sont 2 comportements différents. Peut-être l'OP ne sais pashover
prend 2 différents gestionnaires pourmouseenter
etmouseleave
.Mise à jour de ma réponse.
OriginalL'auteur ShankarSangoli
Voir ici: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/apply
Mise à JOUR:
Si
capIn
est pourmouseenter
etcapOut
est pourmouseleave
, puis:ShankarSangoli
's solution est plus succinct, mais si tous les arguments doivent être transmis dans les plusthis
, puis:capIn.apply(this, arguments)
peut être utilisé.this
valeur dans les fonctions. La seule chose que je voudrais ajouter est d'envoyer lesarguments
le long juste au cas où leevent
ou une coutume args sont nécessaires.désolé, vous avez raison
Dans le deuxième exemple, il n'y a pas besoin de
...hover(function() { capIn.apply(this); }, function() { capOut.apply(this); })
, juste...hover(capIn, capOut)
. Dans le premier exemple, en ramassant sur @amnotiam point, il seraitcapIn.apply(this, arguments);
..hover(capIn.apply(this), capOut.apply(this))
ne fonctionne pas.fn.apply(...)
est un appel de fonction, de sorte que vous besoin de l'envelopper dans une fonction anonyme.OriginalL'auteur dgilland
Cela fonctionne pour moi:
OriginalL'auteur pete