jQuery .bind(滚动)功能在Firefox中不起作用

时间:2012-01-30 03:08:48

标签: jquery internet-explorer firefox

所以有一天,我在Stackoverflow上问了一个问题并得到了答案。但显然在经历了这段时间的挣扎之后,我无法找到解决方案。我在Chrome和Safari中使用的代码,但在Firefox和IE中无效。

有谁可以告诉这段代码有什么问题?

$(window).bind('scroll', function() {
        if ($('body').scrollTop() + $(window).height() >= $('#cooler-nav').offset().top){   
        $.colorbox({width:"700px", inline:true, href:"#subscribepop"});
        $(window).unbind('scroll');
        }

});

基本上,目标是在用户查看div#cooler-nav ...时启动此颜色框。

2 个答案:

答案 0 :(得分:3)

scroll事件不会传播到DOM树中。尝试绑定'body'滚动,而不是窗口滚动,看看是否为你修复了它。

编辑:我回去检查我的代码,过去我必须这样做,并意识到我已经倒退了。当我在过去完成它时,我使用$(window).scrollTop()而不是身体。所以,这会使你的代码看起来像:

$(window).bind('scroll', function() {
  if ($(window).scrollTop() + $(window).height() >= $('#cooler-nav').offset().top){   
    $.colorbox({width:"700px", inline:true, href:"#subscribepop"});
    $(window).unbind('scroll');
  }
});

答案 1 :(得分:0)

您应该更改if子句以检查'body,html'上的scrollTop以使其在FF中工作