Javascript 变量赋值不起作用

Javascript 变量赋值不起作用,javascript,jquery,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-

我不明白为什么我的变量赋值:
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
变量来打印输出,它的效果很好。我真的被难住了。我花了很长时间才发现这个简单的错误,所以我想下次再了解一下。谢谢。

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

给出导航和ID,并以这种方式选择

比如说

HTML

<nav id "foob"></nav>
此外

另外,在事件处理程序中放置一个
console.log('scroll event fired')
,这样您就可以验证事件是否确实正在触发。

这可以:

<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>

jQuery(document).ready(函数($selimatac){
//恩塞利克迪维比尔吉兹勒伊林酒店
$selimatac(“#yukari”).hide();
//卷轴eğer 100 değerininüstünde ise divi görünür yapacak,değilse gizleyecektir
$selimatac(函数(){
$selimatac(窗口)。滚动(函数(){
if($selimatac(this).scrollTop()>100){
$selimatac(“#yukari”).fadeIn();
}否则{
$selimatac(“#yukari”).fadeOut();
}
});
//布托纳·特克莱·桑卡·赛法·恩努斯特·凯马斯·伊辛(butona tıklayınca sayfa enüsteıkmasıiçin)
$selimatac('div a')。单击(函数(){
$selimatac('window,html,body')。动画({
滚动顶部:0
}, 1000);
返回false;
});
});
});

查看以获取更多信息。

可能您的var在代码中的某个地方被重写。尝试另一个var名称

nav
一个ID还是一个类?是
$(document.ready()
)中的代码吗?@John:很可能是一个…如果你将
console.log(mn)
添加到
滚动
事件处理程序中,你会在控制台中看到什么?根据问题所说的可能是一个重复的well,如果是这样的话,那么就开始写吧$(“nav”).addClass(…);手动也不起作用。请阅读文本编辑框中的格式帮助。正确的格式对于可读性、提问者以及将来搜索类似答案的人来说至关重要。
<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>