2014-10-24 2 views
0

Я пытаюсь понять эту реализацию mousewheel.jquery.Использование? и: in jquery

$('.page').mousewheel(function(event, delta) { 
    event.preventDefault(); // if you want to prevent the window from scrolling 

    $(this).animate({left: (delta>0 ? '+' : '-')+'40px'}); 
}); 

Что ? и : делать в:

$(this).animate({left: (delta>0 ? '+' : '-')+'40px'}); 
+3

возможный дубликат [JS, как использовать: (тройная) оператор] (HTTP://stackoverflow.com/questions/6259982/js-how-to-use-the-ternary-operator) –

+2

Это [тройной оператор] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator) –

+0

jQuery - это оболочка на Javascript. Это просто встроенный if-then-else Javascript. 'exp1? exp2: exp3' Значит, если 'exp1' истинно, тогда выполняется' exp2'. В противном случае выполняется 'exp3'. – lurker

ответ

3

?: Является тернарным оператором в javascript.

Код

$(this).animate({left: (delta>0 ? '+' : '-')+'40px'}); 

эквивалентно:

if (delta > 0) { 
    $(this).animate({left: '+40px'}); 
} else { 
    $(this).animate({left: '-40px'}); 
} 
0

Это тройной оператор. Он проверяет, соответствует ли проверка bool, предшествующая ?. Если это так, он запускает код до :, иначе код после :.

В этом случае, если delta > 0 возвращает true, он использует +, в противном случае он использует -.

0

Это называется ternary operator. По существу, строка кода вы вывесили такое же, как:

if(delta >0) { 
    //output + 
} else { 
    //output - 
} 
0

это означает:

if(delta > 0) 
    return'+'; 
else 
    return '-'; 
0

Это работает как IF-заявление

condition ? true : false; 


if(delta>0) { 
return "+"; 
} 
else { 
return "-"; 
} 
0

? и: альтернативный способ написания, если-другое заявление

x = y ? z : k 

такая же, как

if (y){ 
x = z; 
}else{ 
x = k; 
} 
Смежные вопросы