【问题标题】:Focus on next paragraph in contenteditable div / Summernote关注 contenteditable div / Summernote 中的下一段
【发布时间】:2016-11-13 09:03:53
【问题描述】:

我正在使用 Summernote,但正在复制 Medium 编辑器。

插入图片时,我只允许将它们插入到自己的段落标签中。不能将文本与图像混合在侧段落标签中。

我在“has-image”类中为每个段落提供一个图像。我现在想要做的是不允许用户在段落内输入任何文本(如果它具有该类)。

如果他们尝试在标签内点击,它会转而关注下一段。

任何帮助如何做到这一点?我试过触发下一段的点击,但没有运气:

$(document).on('click', '.has-image', function() {
    $(this).next('p').click();
});

我可以设置下一段的文本,所以我知道它的选择很好,但想不出一种方法来实际将光标放在里面。

以JSFiddle为例:http://jsfiddle.net/vXnCM/5583/

【问题讨论】:

    标签: javascript jquery html contenteditable summernote


    【解决方案1】:

    你可能需要使用Range

    $(document).on('click', '.has-image', function() {
    
        r = document.createRange()
        r.setStart($(this).next('p')[0],0);
        window.getSelection().removeAllRanges();
        window.getSelection().addRange(r);
    });
    

    注意:它仅适用于除 IE 之外的大多数现代浏览器。

    对于 IE 功能,请查看https://code.google.com/archive/p/ierange/

    【讨论】:

    • 嗯,看起来对了一半。 jsfiddle.net/vXnCM/5584 这是一个更新的小提琴,如果我单击图像,那么它可以工作,但是单击任一侧进入 p 标签本身仍然允许用户输入文本。不确定是否可以覆盖标准行为。不为所动
    • 我带来的唯一其他解决方案是给图像一个大于包含 p 标签的宽度,然后调整其左边距。这样用户根本无法点击进入 p 标签。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-14
    • 1970-01-01
    • 2016-11-12
    • 1970-01-01
    • 2020-12-11
    • 1970-01-01
    • 2011-03-18
    相关资源
    最近更新 更多