2010-01-25 4 views
3

J'essaye de créer une fonction qui s'exécutera sur un clic, à la condition qu'une variable soit mise à 0;La fonction ne s'exécutera pas

Cependant, la fonction ne sera pas exécuté, même si la variable est définie à 0. (J'utilise jquery)

var menuVisible = 0 ; 
$('#links').click(function(){ 
    if (menuVisible = 0) 
    { 
     $('#subMenu').show("slow") ; 
     menuVisible = 1 ; 
    } 
}); 

Je teste la valeur de la variable « MenuVisible » avec alerte, et c'est en effet "0". Alors, pourquoi la fonction ne s'exécutera-t-elle pas?

+0

Je n'ai pas reçu d'alerte de SO lors de l'édition, je l'ai retransmise à votre édition, jleedev, parce que la vôtre est meilleure. – YOU

Répondre

2

Ceci est juste une suggestion, les solutions proposées auraient dû fonctionner. Si en effet vous vouliez créer une situation d'ouverture/fermeture "on click" (c'est mon hypothèse de votre code donc ne vous dérange pas si elle est fausse) alors au lieu de cette variable et hide()/show() vous devriez utilisez la fonction toggle(). Amusez-vous :)

4

Changer votre déclaration if à:

if (menuVisible == 0) 

Les doubles égaux est l'opérateur d'égalité. Single égal est l'affectation.

8

Vous attribuons une valeur avec:

if (menuVisible = 0) 

de sorte que ce sera toujours faux (car il est 0). Changer à:

if (menuVisible == 0) 
2

Vous pouvez modifier:

if (menuVisible = 0) 

à:

if (!menuVisible) 

résoudre ce problème.