2015-11-05 3 views
0

Когда я изменяю переменную на 0, она не работает. Почему я должен использовать переменную вместо «0»?Почему я должен использовать переменную вместо «0»?

Используйте номер 0 вместо имени переменной, и вы увидите. fiddle

$(function() { 
 

 
    var zero = 0; 
 
    $(window).scroll(function() { 
 
    var top = $(this).scrollTop(); 
 
    if (top > zero) { 
 
     $("nav").hide(); 
 
    } else if (top < zero) { 
 
     $("nav").show(); 
 
    } 
 
    zero = top; 
 
    }); 
 

 
});
body { 
 
    height: 1000px; 
 
} 
 

 
nav { 
 
    width: 100%; 
 
    height: 75px; 
 
    background: #333; 
 
    position: fixed; 
 
    top: 0; 
 
    left: 0; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<nav></nav>

ответ

1

Почему я должен использовать переменную вместо просто "0"?

Потому что вы изменяете значение. Вот что ваш код будет выглядеть, как если бы вы пытались использовать буквенное значение вместо переменной:

$(window).scroll(function() { 
    var top = $(this).scrollTop(); 
    if (top > 0) { 
    $("nav").hide(); 
    } else if (top < 0) { 
    $("nav").show(); 
    } 
    0 = top; // <-- here is the problem 
}); 

Очевидно, что последняя строка не имеет смысла. Вы не можете изменить буквальное значение. Хранение значения и его изменение со временем - это именно то, для чего нужна переменная. Поэтому в этом случае вам нужно использовать переменную.