jQuery没有做任何事情

时间:2017-05-16 17:39:02

标签: javascript jquery css

我有这个jQuery应该在'滑入'在页面上滚动后的标题,但没有任何反应。在第3行,我的代码编辑器给了我一个!只读警报,也许是语法问题?

我正在使用beaver builder自动调用jQuery。

$( document ).ready(function() {
        $(window).scroll(function(){
            scroll = $(window).scrollTop();
            if (scroll > 450){
                $('#jQuery-mob').slideDown();
            }

            if (scroll < 450){
                $('#jQuery-mob').slideUp();
            }

        });
    });

        $( document ).ready(function() {
        $(window).scroll(function(){
            scroll = $(window).scrollTop();
            if (scroll > 700){
                $('#why-jquery').slideDown();
            }

            if (scroll < 700){
                $('#why-jquery').slideUp();
            }

        });
    });

#jquery-mob和#why-jquery都设置为display:none

的CSS:

    #why-jquery {
    position: fixed;
    top:0;
    z-index: 99;
    width: 100%;
    height: 100px;
    display: none;
}

#jQuery-mob {
    position: fixed;
    top:0;
    z-index: 99;
    width: 100%;
    height: 100px;
    padding: 0 !important;
    display: none;
}

3 个答案:

答案 0 :(得分:2)

  

我正在使用beaver builder自动调用jQuery。

我想你的意思是说:

  

我正在使用自动调用jQuery的wordpress。

对于wordpress网站,默认情况下,您必须使用jQuery而不是$。您可以替换全部,也可以仅在.ready&#34;包装器中使用jQuery&#34;并将$传递给.ready函数。

两者的例子:

jQuery( document ).ready(function() {
    jQuery(window).scroll(function(){
        scroll = jQuery(window).scrollTop();
        if (scroll > 450){
            jQuery('#jQuery-mob').slideDown();
        }

        if (scroll < 450){
            jQuery('#jQuery-mob').slideUp();
        }
    });
});

jQuery(document).ready(function(  $  ) {
    $(window).scroll(function(){
        scroll = $(window).scrollTop();
        if (scroll > 700){
            $('#why-jquery').slideDown();
        }

        if (scroll < 700){
            $('#why-jquery').slideUp();
        }
    });
});

请注意,我没有检查您的代码,但我确实看到您正在使用scroll而没有使用var声明它。这意味着scroll将是一个全局变量。设置/使用它们的两个功能都可能导致相互干扰,以及覆盖window.scroll功能。您可能希望使用var scroll=等,并且还可以更好地使用其他变量名称。

答案 1 :(得分:1)

scroll是一个窗口级函数,因此在浏览器上下文中充当reserved word

&#13;
&#13;
console.log(scroll)
&#13;
&#13;
&#13;

你试图用一个名为&#34; roll&#34;的变量覆盖它,这就是导致&#34;!只读&#34;你看错了。

使用其他变量名称(并使用&#39; var&#39;声明它。)

答案 2 :(得分:-1)

此代码具有逻辑问题

  if (scroll < 450 && scroll < 800){ 

当滚动小于450时,它也小于800,所以你为什么要包括第二个比较?

这一行的同一个故事:

if (scroll < 700 && scroll < 1000){