变量赋值不起作用

时间:2016-04-08 22:28:09

标签: javascript jquery

我不明白为什么我的变量赋值:var mn = $("nav");在这段代码中不起作用:

var mn = $("nav");
var randomNum = 23;

$(window).scroll(function() {
  if( $(this).scrollTop() > 400 ) {
    $("nav").addClass("main-nav-scroll");
    alert(randomNum);
  } else {
    mn.removeClass("main-nav-scroll");
  }
});

当我在$("nav").addClass(...);手动写出来时,它完美无缺。我认为这个问题可能是变量的范围,所以我添加了randomNum变量来打印出来,它确实很好。我真的很难过。我花了很长时间才发现这个简单的错误所以我想在下次理解。感谢。

3 个答案:

答案 0 :(得分:0)

您的问题可能是nav。它就像<p>一样是一个dom元素。因此,当您尝试选择它时,您的查询就是一般的。

提供导航和ID并以此方式选择。

例如

<强> HTML

<nav id "foob"></nav>

<强> JS

var mn = $("#foob");

另外

另外,在事件处理程序中放置一个console.log('scroll event fired'),以便验证事件是否实际触发。

答案 1 :(得分:0)

这有效:

<script type="text/javascript">
  jQuery(document).ready(function ($selimatac) {

    // öncelikle divi bir gizleyelim
    $selimatac("#yukari").hide();

    //scroll eğer 100 değerinin üstünde ise divi görünür yapacak, değilse gizleyecektir
    $selimatac(function () {

        $selimatac(window).scroll(function () {
            if ($selimatac(this).scrollTop() > 100) {
                $selimatac('#yukari').fadeIn();
            } else {
                $selimatac('#yukari').fadeOut();
            }
        });

        // butona tıklayınca sayfa en üste çıkması için
        $selimatac('div a').click(function () {
            $selimatac('window,html,body').animate({
                scrollTop: 0
            }, 1000);
            return false;
        });
    });
});
</script>

请查看http://selimatac.net/jquery-scrolltop-ile-yukari-cik-butonu/以获取更多信息。

答案 2 :(得分:0)

也许您的var会在代码中的某处重写。尝试另一个var名称