【问题标题】:check if Redactor initialised检查 Redactor 是否已初始化
【发布时间】:2015-06-22 10:59:09
【问题描述】:

我正在使用Redactor WYSIWYG editor 进行内容编辑。如何检查是否已在某些元素上初始化了 redactor?我目前正在检查元素是否有一个类名redactor-editor,但我想一定有更好的方法吗?

$('.btn-edit-content').click(function(e){
    e.preventDefault();
    if(!$($(this).attr('href')).hasClass('redactor-editor'))
        $($(this).attr('href')).redactor({
            toolbarFixedTopOffset: 95,
            plugins: ['table']
        });
})

【问题讨论】:

    标签: jquery redactor redactor.js


    【解决方案1】:

    根据他们的 api doc,你可以做这样的事情

    $('.btn-edit-content').click(function(e){
        e.preventDefault();
    
         if( $.data($($(this).attr('href'))[0], 'redactor') === undefined) {
    
             $($(this).attr('href')).redactor({
                 toolbarFixedTopOffset: 95,
                 plugins: ['table']
             });
    
         }
    });
    

    Look at their doc for more help

    希望对你有帮助

    【讨论】:

    • 我一直在寻找类似的东西,但是当我打电话给$('#el').redactor('core.getEditor') 时,我在控制台中收到了这个奇怪的错误:TypeError: h is undefined。我认为在插件上实际初始化 Redactor 之前不能调用它...
    • 你说得对,看看我的编辑,它现在应该可以工作了。注意这里我们只检查是否定义了编辑器,我不知道如果你之前使用过destroy方法这个条件是否有效
    • 尝试将$(this).attr('href') 替换为您的标识符。你确定你的错误来自编辑器吗?尝试使用 0 配置初始化编辑器。这个错误没有理由继续存在,我们对插件没有任何工作,我们只是检查是否在元素上设置了'redactor'。
    【解决方案2】:

    我还没有找到更好的方法,所以我正在检查Redactor是否以这种方式初始化(​​sn-p在coffeescript中):

    $('.redactor').each ->
      $editor = $(this).siblings('.redactor-editor')
      $(this).redactor() unless $editor.length
    

    上下文:我有几个文本区域在 1 页上有 .redactor 类,在某些时候,其中一些丢失了 Redactor 的初始化。如果我一次为所有 textareas 调用 .redactor(),那么之前初始化的 Redactors 会被复制。

    【讨论】:

      猜你喜欢
      • 2014-08-19
      • 2011-10-12
      • 2015-05-23
      • 2019-01-25
      • 1970-01-01
      • 2017-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多