You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

jQuery滚动加载帖子时contenteditable div重复问题求助

解决滚动加载时表情编辑器重复生成的问题

看起来你遇到的核心问题是滚动加载新帖子时,重复调用了emojiarea插件的初始化逻辑,导致已经处理过的旧帖子输入框被再次初始化,从而生成多个重复的.emoji-wysiwyg-editor元素。下面给你两种可行的解决方案:

方案1:精准初始化新加载的帖子元素(推荐)

滚动加载AJAX请求成功后,不要全局重新初始化所有.emojis-wysiwyg元素,而是只针对刚添加到页面的新帖子里的输入框进行初始化。这样完全不会影响旧帖子的已初始化元素。

修改你的滚动加载回调代码:

// 滚动加载逻辑示例
$(window).scroll(function() {
    if ($(window).scrollTop() === $(document).height() - $(window).height()) {
        $.ajax({
            url: "你的加载更多接口地址",
            success: function(data) {
                // 将新帖子转为jQuery对象,方便后续操作
                const $newPosts = $(data);
                // 添加到页面容器
                $("#posts-container").append($newPosts);

                // 仅初始化新帖子里的普通表情输入框
                $newPosts.find('.emojis-plain').emojiarea({ wysiwyg: false });
                
                // 仅初始化新帖子里的富文本表情输入框
                const $newWysiwyg = $newPosts.find('.emojis-wysiwyg').emojiarea({ wysiwyg: true });
                
                // 给新初始化的富文本框绑定change事件
                $newWysiwyg.on('change', function() {
                    $('#emojis-wysiwyg-value').text($(this).val());
                });
                $newWysiwyg.trigger('change');
            }
        });
    }
});

方案2:用标记类避免重复初始化

如果你的滚动加载逻辑不方便直接获取新帖子元素,可以给已经初始化过的输入框添加一个标记类,每次初始化时跳过这些已标记的元素:

修改你的初始化代码(包括页面首次加载和滚动加载后的初始化):

// 初始化普通表情输入框:只处理未标记的元素
$('.emojis-plain:not(.emoji-initialized)')
  .addClass('emoji-initialized') // 添加标记类
  .emojiarea({ wysiwyg: false });

// 初始化富文本表情输入框:同样只处理未标记的元素
const $wysiwyg = $('.emojis-wysiwyg:not(.emoji-initialized)')
  .addClass('emoji-initialized')
  .emojiarea({ wysiwyg: true });

// 绑定change事件并触发
$wysiwyg.on('change', function() {
    $('#emojis-wysiwyg-value').text($(this).val());
});
$wysiwyg.trigger('change');

这样不管是页面首次加载,还是滚动加载后重新执行这段代码,都会自动跳过已经处理过的输入框,避免重复生成编辑器div。

问题根源说明

每次滚动加载新内容后,如果你重新执行了全局初始化代码(比如$('.emojis-wysiwyg').emojiarea(...)),会选中页面上所有匹配的元素——包括之前已经初始化过的旧帖子输入框。而emojiarea插件每次被调用时,都会给目标元素生成新的编辑器容器,最终导致一个帖子里出现多个重复的.emoji-wysiwyg-editor。

内容的提问来源于stack exchange,提问作者khalid seleem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:33:50