2009-12-07 4 views
0

Je me demande pourquoi le navigateur affiche "connecté" sans que j'aie cliqué sur le lien i-taggé avec clickhere. il l'affiche chaque fois que je rafraîchis la page.jquery exécute la fonction déclarée sans que je clique sur

<script type="text/javascript"> 
    $(document).ready(function(){ 

    function login(){ 
     alert("logged in"); 
    } 

    $("#clickhere").click(login()); 

}); 
</script> 

Je veux juste qu'il soit affiché lorsque je clique sur le lien.

quel est le problème?

Répondre

5

Vous devez supprimer() après la connexion dans la fonction JQuerys click().

<script type="text/javascript"> 
    $(document).ready(function(){ 

    function login(){ 
     alert("logged in"); 
    } 

    $("#clickhere").click(login); 

}); 
</script> 
+0

c'était vraiment bizarre. Habituellement, vous appelez une fonction comme login() .. hmm .. –

+2

exactement. Mais vous ne voulez pas l'appeler (maintenant), vous voulez juste dire à jquery d'utiliser cet objet de fonction plus tard, quand le clic se produit. –

0

Vous devez passer la méthode à click() de jQuery. login() signifie execute-the-login-method. Vous devez passer la méthode correctement comme ammoQ said.

Ou vous pouvez changer votre code comme ceci. Il n'appellera que login() lorsque vous cliquez sur le #clickhere.

<script type="text/javascript"> 
    $(document).ready(function(){ 

    function login(){ 
     alert("logged in"); 
    } 

    $("#clickhere").click(function() { 
     login(); 
    }); 

}); 
</script> 
Questions connexes