2015-06-22 66 views
1

我使用Redactor WYSIWYG editor为我的内容编辑。如何检查某个元素上的初始化函数是否已被初始化?我目前正在检查元素是否有类名称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'] 
     }); 
}) 

回答

0

根据他们的API文档,你可以做这样的事情

$('.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

希望这是你

+0

我一直在寻找这样的事情,是的,但是当我打电话'$(“#报”)主编(“core.getEditor”)'我得到这个奇怪的错误控制台:'类型错误:h为undefined' 。我觉得前主编实际上是在插件初始化这个不能叫...... –

+0

你说得对,看我的编辑,它应该工作了。 注意到,这里我们只检查编辑器定义,我不知道这情况将工作,如果你已经通过替换'$使用的破坏方法以前 – DFayet

+0

我得到再次SAM类型错误... –

0

我还没有找到更好的办法去帮助,所以我检查主编是否初始化或不这样(的片段是在CoffeeScript中):

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

背景:我在某些时候他们有的失去主编的初始化1页,并具有.redactor类别中的几种文字区域。如果我一次给所有textareas打电话.redactor(),那么之前初始化的Redactors会被复制。 。