2015-06-22 91 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會被複制。 。