【问题标题】:Combine jQuery and jetpack infinite scroll结合jQuery和jetpack无限滚动
【发布时间】:2016-09-15 11:17:27
【问题描述】:

我正在使用以下 jQuery 对前端的所有 wordpress 帖子进行手风琴效果。

(function($) {
    function initAccordion() {  
        var $ele = $('.entry-content').hide();
        $(".entry-header").unbind('click').click(function(e) {
            e.preventDefault();
            var $ele1 = $(this).parents(".post").children('.entry-content').slideToggle('fast');
            $ele.not($ele1).slideUp();
        }); 
    } 

    initAccordion();

    $(document.body).on('post-load', function() { 
        initAccordion();
    });     
})(jQuery);

我正在尝试让脚本与 infinite scroll 一起工作,但我有一个问题我不知道如何解决。

无限滚动的工作原理是在您滚动到页面底部时自动显示较旧的帖子。这按预期工作。

如果单击帖子标题,则提供的代码中的 jQuery 通过一次显示一个帖子来工作。问题是当你滚动到一个无限滚动的新页面时,打开的帖子会自动关闭。

如果您使用Live example here,您就会明白我的意思。尝试打开帖子,然后向下滚动,直到 URL 显示 .../page/2/ 并且您打开的帖子将被关闭。

如何避免滚动到新页面时打开的文章被关闭?

【问题讨论】:

    标签: javascript jquery html css wordpress


    【解决方案1】:

    尝试改变这一行:

    var $ele = $('.entry-content').hide();

    var $ele = $('.entry-content').not('[data-did-load]').hide().attr("data-did-load", true);

    【讨论】:

    • 另一件事,更喜欢使用最接近('.post')而不是父母('.post'),因为最适合您的情况
    • 这行得通,有点。但我希望一次只显示一篇文章。此处示例:jqueryui.com/accordion
    • 我不完全确定我是否理解您对这里最亲近/父母的意思..?
    • 我只是指出'最接近'的方法最适合你的情况,试试吧,将方法'父母'改为'最接近'......关于这个问题,你能部署代码,这样我就可以检查它并尝试发现问题所在......
    • 这是我想要实现的,只有无限滚动才能工作,所以当我开始滚动时它不会关闭 div:i.imgur.com/lVUROBV.gifv 如果我使用你的代码会发生这种情况:@987654323 @我已经部署了你刚才建议的代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-17
    • 2015-01-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多