jQuery.remove()的Safari滚动问题

Safari Scrolling issue with jQuery .remove()

本文关键字:Safari 滚动 问题 remove jQuery      更新时间:2023-09-26

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

当我注释掉这个函数时,页面会滚动得很好,但它不会像我需要的那样删除空的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中引起滚动问题,但在其他浏览器中却不会。

非常感谢您的帮助!

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

我有这个功能:

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

但是线路:

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

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