2015-11-05 101 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 
}); 

显然,最后一行是没有意义的。您不能修改文字值。存储一个值并随着时间的推移修改它正是变量的用途。所以在这种情况下,你需要使用一个变量。

相关问题