2011-12-09 3 views
1

J'ai déjà rencontré cette utilisation d'opérateurs et je sais que c'est une instruction compressée si, mais quelqu'un peut-il me dire en termes simples exactement ce que cela signifie.Quelqu'un peut-il expliquer ce que cette déclaration signifie

$("#portfolio-id").height($("#portfolio-id").height() > h-72 ? divHeights-72 : h-72); 

Je ne sais même pas comment on l'appelle pour le google. Quelqu'un at-il des liens que je peux aller à et trouver la réponse moi-même?

Merci beaucoup pour l'aide

+0

Voir http://en.wikipedia.org/wiki/Ternary_operation. – Mike

+0

Dupliquer: http://stackoverflow.com/questions/5989982/is-there-difference-between-ternary-operator-and-if-condition (celui-ci est pour PHP mais ils fonctionnent de la même manière) –

+0

Voici un lien vers la fonction height() dans les docs jQuery http://api.jquery.com/height/ – matkins

Répondre

4
var newHeight; 
if ($("#portfolio-id").height() > h-72) 
{ 
    newHeight = divHeights-72; 
} 
else 
{ 
    newHeight = h - 72; 
} 
$("#portfolio-id").height(newHeight); 

Unknown ce que h est ou divHeights

1

Cela signifie:

set the height of the element with id portfolio-id to the following value: 
    if the height of the element with id portfolio-id is greater than h-72 then 
     the value is divHeights-72 
    else 
     the value is h-72 

Cet opérateur est généralement appelé l'opérateur ternaire , et la forme générale est

testThisCondition ? returnThisIfTrue : returnThisIfFalse; 
1

Définit la nouvelle hauteur pour quelque chose avec id="portfolio-id". Si elle est plus grande que h-72 alors il est réglé sur divheights-72; autre, il est réglé sur h-72

Il est appelé une déclaration ternaire

1

Il est l'opérateur ternaire. Il fonctionne comme

var x = condition ? valueIfTrue : valueIfFalse;

Il est essentiellement un raccourci pour écrire un if/else instruction.

1

divHeights et h sont des variables qui ont été déclarées. L'instruction utilise ternary if else, pour déterminer quelle sera la nouvelle hauteur de # portfolio-id.

//variable declarations 
divHeights = x; 
h = y; 

//$("#portfolio-id").height() > h-72 ? divHeights-72 : h-72 is equivalent to the below code 
if($("#portfolio-id").height() > h-72){ 
    newHeight = divHeights-72; 
} else { 
     newHeight = h-72; 
} 

$("#portfolio-id").height(newHeight); 
0
$("#portfolio-id").height(    // sets #portfolio-id's height to... 
    $("#portfolio-id").height() > h-72 ? // if its current height is greater than h-72... 
     divHeights-72     //  then divHeights-72 
    : h-72        //  else h-72 
); 
0

Il doit y avoir quelque part dans la valeur h est affectée.

Supposons que votre h = 100;

maintenant vous vérifiez la hauteur des objets "# portfolio-id". If ($ ("# portfolio-id"). Height()> h-72) que d'attribuer $ ("# portfolio-id").hauteur = divHeights-72 autre assign $ ("# portefeuille-id"). hauteur = divHeights-72 h-72

0
$("#portfolio-id").height($("#portfolio-id").height() > h-72 ? divHeights-72 : h-72); 

|    boolean check        | | if true| |if false|    
0

Il est appelé Conditional Operator (ou opérateur ternaire)

Qu'est-ce que le code est faire est:

var currentHeight = $("#portfolio-id").height(), newHeight = currentHeight; 
if (currentHeight > h-72) {   // if current height is greater than h - 72, use divHeights - 72 
    newHeight = divHeights - 72; 
} else {        // otherwise use h - 72 
    newHeight = h - 72; 
} 
$("#portfolio-id").height(newHeight); 

ce qu'il devrait faire (imo) est:

$("#portfolio-id").height(function(i, height) { 
    if (height > h - 72) { 
     return divHeights - 72; 
    } else { 
     return h - 72; 
    } 
}); 

Ceci utilise la 2ème version du height function