CKEditor SetData()仅适用于第一次。我错过了什么

时间:2017-09-15 16:29:13

标签: javascript jquery html ckeditor

基本上我有一张表&#39;注释&#39;当你点击一个它打开一个模态。我想将textarea更改为ckeditor实例并使用它,但我遇到的问题是第一个音符点击加载正常但在此之后将加载第一个被点击的内容。< / p>

让我们说一下&#39; a&#39;并注意&#39; b&#39;。

如果我打开笔记&#39; a&#39;并看到内容说&#34;你好我注意到&#34;然后我关闭这个笔记并打开笔记&#39; b&#39;它仍然会说&#34;你好我注意到&#34;仍然没有适当的内容。

这是我目前的代码。

在顶部的文档就绪功能

var noteEditor = CKEDITOR.replace("noteDetailEdit", {
    baseHref: CKEDITOR.basePath,
    customConfig: CTX_PATH + '/resources/js/ckeditor_config.js'
});

这是单击注释链接时调用的displayNote()函数。

function displaynote(id) {
    CKEDITOR.instances.noteDetailEdit.setData( $("#detail-" + id).val());

    var title = $("#title-" + id).val();
    var active = $("#active-" + id).val();
    var version = $("#version-" + id).val();
    $("#noteTitle_readonly").val(title);
    $("#noteId_readonly").val(noteId);
    $("#active_readonly").val(active);
    $("#version_readonly").val(version);
    modal("#notes_modal_readonly");
}

所以我想为什么我很困惑,为什么它会在你第一次点击而不是其他时候工作。

textarea开始为空,单击链接并调用displayNote()并正确设置数据。

那么为什么不重新设置数据并正确显示呢?

修改

如何调用显示注释。

您将在下面看到对displayNote()js函数的调用。

<c:if test="${!empty programDto.programNote}">
                <c:forEach items="${programDto.programNote}" var="programNote">
                    <tr>
                        <td valign="top"><input type="checkbox" data-id="${programNote.id}" /></td>
                        <td valign="top">
                            <c:out value="${programNote.noteTitle}" />
                        </td>
                        <td>
                            <a href="javascript:displaynote('${programNote.id}')">
                                <c:set var="detail" value="${programNote.noteDetail}" />
                                <c:if test="${fn:length(detail) > 45}">
                                    <c:set var="detail" value="${fn:substring(detail, 0, 45)}..." />
                                </c:if>
                                <c:out value="${detail}" />
                            </a>
                        </td>
                        <td valign="top">
                            <joda:format value="${programNote.lastModifiedDate}" var="parsedNoteDate" pattern="MMMM dd, yyyy" />
                            <c:out value="${parsedNoteDate}" />
                        </td>
                    </tr>
                </c:forEach>
            </c:if>

1 个答案:

答案 0 :(得分:0)

问题已解决。

我在显示模态的函数中将SetData作为回调函数。