jquery - ajax更新后Summernote消失

标签 jquery ajax jsf summernote

我将 Summernote 与 JSF 结合使用,如下所示:

<div class="form-group">
                <label>Texto</label>
                <h:inputTextarea value="#{cursoMB.questao.questao.texto}"
                    disabled="#{cursoMB.questao == null}"
                    styleClass="summernote form-control" />
            </div>

我的 JavaScript:

jQuery('.summernote').summernote({
     height: 300,                 // set editor height

      minHeight: null,             // set minimum height of editor
      maxHeight: null,             // set maximum height of editor

      focus: false                 // set focus to editable area after initializing summernote      
});

一切正常,但是当我执行以下commandLink时,summernote消失了,在没有设计的简单inputTextArea中进行了转换:

<h:commandLink actionListener="#{cursoMB.inserirQuestao()}"
                styleClass="btn btn-default" title="clique para inserir a questão">
                <f:ajax execute="@this" render="divTeste divQuestao"
                    onevent="function(data) { if (data.status === 'success') { 
    document.getElementById('inputTextOrdemQuestao').focus() } }" />
                <i class="fa fa-plus fa-fw"></i>
            </h:commandLink>

我注意到发生这种情况是因为 ajax 再次渲染我的页面。我该如何解决这个问题?

最佳答案

造成此问题的原因是 JavaScript 操作的 HTML 片段被原始服务器生成的 HTML 替换,而之后又没有再次进行 JS 操作。

你基本上有两个选择:

  1. 不要使用 ajax 更新 JS 操作的 HTML 片段。只需显式更新真正需要更新的部分,例如只有<h:message>与输入字段关联的组件。

  2. 或者,如果这不是一个选项,例如因为您需要重新显示提交的值,因为您正在使用某些转换器来操作提交的值,那么当该 HTML 片段被 ajax 更新时,您需要显式地重新执行该 JS 操作。在您的具体情况下,归结为调用 jQuery('.summernote').summernote(...)再次期间success事件。

另请参阅:

关于jquery - ajax更新后Summernote消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28796296/

相关文章:

javascript - 对 Django 服务器的简单 Ajax 调用导致响应时间很慢 - 慢 TTFB

php - 无限滚动系统,需要更改获取最后一项的方法

javascript - 给定两个数组,返回一个只包含不相交项的数组

jQuery .hover 在 Chrome 中不工作

javascript - 如何确定是否需要等待ajax结果显示在前端

javascript - 附加选项以仅选择框一次而不是多次

jQuery load() 和 Facebook 评论

jsf - 当 OmniPartialViewContext#startDocument 执行透明重定向时,omnifaces 1.10 出现错误

java - 在 JSF EL 表达式中连接两个字符串

jsf - 如何处理 JSF 2 中的 session 过期和 ViewExpiredException?