jquery让它下面的任何东西都消失了

时间:2014-05-02 00:14:12

标签: jquery

当我在我的appkication中的任何地方添加这段代码时,它下面的任何内容都会消失。

我没有看到错误吗?

  var ads = $('.ads').offset().top;
     $(window).scroll(function(){
     if($(this).scrollTop() > ads) {
       $('.ads').addClass('fixed');
        console.log('toptoptopt');
      }
      else {
       $('.ads').removeClass('fixed');
       console.log('no top');
      }
   });
    });(jQuery);

这就是我如何调用div ads

{if $banners.3}
<div class="ads">
    <div class="banner-side">{banner area="3"}</div>    
</div>
    {/if}

这是用smarty php完成的。一个没人应该使用的可怕的事情。

这里有一些我使用过的JS,存在同样的问题。我网站上的某些内容可能会与此代码冲突吗?

(function($){
$('#ads').addClass('disable');      


$(window).on('scroll', function() {
           var st = $(this).scrollTop();
           st > 250 ? $('#ads').addClass('fixed').removeClass('disable') : $('#ads').addClass('disable').removeClass('fixed');
         });

})(jQuery);

1 个答案:

答案 0 :(得分:-1)

Javascript解释器在遇到语法错误时停止处理脚本。错误后的任何内容都将被忽略。

在这种情况下,它可能是});(jQuery);。无论是因为支撑不平衡,还是因为流星分号 - 正如attila指出的那样。

<强>更新

您的Javascript语法错误。在第一个代码块中,您缺少与最后一行匹配的左括号/括号对。可能应该是:

(function($){
   var ads = $('.ads').offset().top;
   $(window).scroll(function(){
      if($(this).scrollTop() > ads) {
         $('.ads').addClass('fixed');
         console.log('toptoptopt');
      } else {
         $('.ads').removeClass('fixed');
         console.log('no top');
      }
   });
})(jQuery);

你的第二个也错了。

(function($){

   $('#ads').addClass('disable');      

   $(window).on('scroll', function() {
      var st = $(this).scrollTop();
      if (st > 250) {
         $('#ads').addClass('fixed').removeClass('disable');
      } else {
         $('#ads').addClass('disable').removeClass('fixed');
      }
   });

})(jQuery);

你不能只复制和粘贴一些代码并在其中摸索。你需要知道自己在做什么。我建议您参加一些关于Javascript的在线课程吗?