2010-12-09 3 views
3

ma question est deux fonctions sont transmises à basculer pourquoi .. et côté à une autre fonction est là aussi source de confusion est plz me direfonction bascule

$('#login a').toggle(function() { 
    $(this) 
     .addClass('active') 
     .next('form') 
     .animate({'height':'show'}, { 
     duration:'slow', 
     easing: 'easeOutBounce' 
     }); 
    }, function() { 
    $(this) 
     .removeClass('active') 
     .next('form') 
     .slideUp(); 
    }); 
    $('#login form :submit').click(function() { 
    $(this) 
     .parent() 
     .prev('a') 
     .click(); 
    }); 

Répondre

1

La méthode toggle() prend deux fonctions comme arguments (ou plus) et appelle l'un d'entre eux alternativement chaque fois que l'on clique sur l'élément.

Les fonctions sont first class citizens en Javascript: vous pouvez les manipuler comme tout autre objet, y compris les transmettre à d'autres fonctions:

function foo(otherfunction) 
{ 
    otherfunction(); 
} 

function bar() 
{ 
    window.alert("bar() was called."); 
} 

foo(bar); // Ultimately calls `bar()`. 
+0

Super frère merci beaucoup – Mihir

0

Selon JQuery API documentation fonctions seront appelées sur les clics en alternance:

  • premier clic - première fonction,
  • deuxième clic - deuxième fonction,
  • troisième clic - première fonction,
  • quatrième clic - deuxième fonction ...

Quant au gestionnaire de bouton d'envoi, il simule cliquez pour l'élément d'ancrage (a) qui est à l'élément frère ou une sœur qui contient le bouton et est situé avant élément de conteneur. Comme ceci:

<a href="#">click will be simulated for this link</a> 
<div> 
    <input type="submit"/> 
</div>