使用jQuery .remove()进行Safari滚动问题

时间:2013-06-20 22:11:09

标签: javascript jquery function safari scroll

我正在为网站构建程序开发一个插件,并正在构建它的预览页面。这是一个视差滚动插件,我遇到的问题是在Safari中,当你向下滚动到某个点时,它不会允许你进一步滚动。它在firefox和chrome中很好,但我在opera中看到了同样的问题。我已经设法将其缩小到导致它的功能,但我不知道为什么或如何解决它。

当我注释掉这个函数时,页面滚动得很好,但它不会像我需要它那样删除空的div:

function removeStuff() {
    $('.conP').each(function(){
        var divDad = $(this),
            divses = $(this).children();
        if (divses.hasClass('empty'))
            divDad.remove();
    });
}

这是可以观察到问题的预览页面: http://reveriesrefined.com/myftp/dack_stev/

//////////编辑:

我已将代码简化为:

$('.conP_%id% > .empty').parent().remove();

但是,它仍然会导致Safari和Opera中的滚动问题,而不是其他浏览器。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

实际上,我已经发现了这个问题。不知怎的,即使注释掉上面提到的函数似乎解决了它,它实际上是另一个函数中的一行代码。

我有这个功能:

function autoPlay() {
var backDiv = $('#outterLax div:first');
    backDiv.hide();
    $('.conP').hide();
    backDiv.remove();
    $('#outterLax').append(backDiv);
    backDiv.show();
}

但行:

$('.conP').hide();

是不必要的,因为这已经在我的代码中的其他地方完成了。