2010-12-09 7 views
2

Ich habe meinen Kopf über diesen ‚einfachen‘ Javascript-Schnipsel wurde zu brechen:Wie man Javascript ODER Bediener benutzt?

$("#hitbox").mouseleave(function() { 
    if($("#sub-wrapper-1").height() < 179 || $("#sub-wrapper-2").height() < 179) {  
    $("#hitbox").animate({ "height" : '0px' }, 800), 
    } else { 
    $("#hitbox").stop(); 
    } 
}); 

Could you guys Schübe mich in der richtigen Richtung, wie den OR Operator in Javascript verwenden? Der obige Code wirft keine Fehler, aber es scheint, wie es die Funktion als Operator ausführt.

+0

Du meinst das' || '? Nein, das ist wirklich der Shortcut-OR-Operator. Ich würde damit beginnen, die height() - Ergebnisse zu debuggen, z. Lesen Sie sie zuerst in Variablen, so dass Sie sie in einem Debugger oder Alert() sie untersuchen können. – Rup

+1

Es ist nicht jquery ODER Sie suchen, sein Javascript ODER –

+1

@Rup - Verknüpfung? ... was ist der lange Weg? :) –

Antwort

5

Ihr OR-Operator ist rechts (in der Tat in Ihrem Fall ist einfach Javascript!)

Es scheint, dass Sie hier einen Fehler haben

$("#hitbox").animate({ "height" : '0px' },800), 

fix als

$("#hitbox").animate({ height : '0px' },800); 
+0

danke für die schnelle Antwort! Der obige Code ist Teil eines größeren jQuery-Skripts, aber Sie sind in Ordnung, sein einfaches Javascript. Danke für das "Höhe" Problem, total übersehen, dass! Danke noch einmal! –

+0

Ich verstehe es nicht. Wo ist der Fehler (und der Fehler)? EDIT: Vielleicht das Komma am Ende, aber ich wäre überrascht, wenn es einen Unterschied machen würde (außer vielleicht in IE). – user113716

+0

hehe, es tut immer noch nicht das, was ich will, aber zumindest jetzt weiß ich, dass es nicht der OR-Operator ist, der alles abgehört hat! –

2

Ich finde Manchmal vergleichen JS-Operatoren (in diesem Fall Ihre || oder) ganze Klauseln nicht, sondern nur das nächste Element, das die Klausel startet. Sie können versuchen, Ihre Klauseln mit Parens wie folgt zu umhüllen:

if (($ ("# sub-wrapper-1"). height() < 179) || ($ ("# sub-wrapper- 2 "). Height() < 179))