2014-04-09 81 views
3

我在堆棧溢出上發現了一些類似的帖子,但沒有一個正在工作的答案。CKeditor的實例已經存在

我在頁面上有幾個標籤,取決於他們點擊他們會看到一個特定的標籤。在其中一個選項卡中,有一個CKeditor,它是在點擊li時啓動的。當他們用戶點擊關閉特定標籤到另一個,然後返回有此錯誤:

Uncaught The editor instance "employDesc" is already attached to the provided element.

這裏是JS:

$('.addVacancy').click(function() { 
     if(CKEDITOR.instances.employDesc) { 
      alert('instance exists'); 
      var editor = CKEDITOR.instances[employDesc]; 
      if (editor) { 
       editor.destroy(true); 
      } 
      alert('distroyed'); 
     } 
     CKEDITOR.replace('employDesc'); 
    }); 

警報的同時出現,但隨後它打破的控制檯中出現錯誤。有人能幫忙嗎?

感謝

+0

你爲什麼要綁定CKEDITOR點擊事件的李?爲什麼不把它綁定在文件加載上? – astroanu

+0

我試過了,但是當我點擊標籤時它沒有工作。我想也許他們是動態加載的 – MarkP

+0

你可以做這個工作的小提琴嗎? – astroanu

回答

9

你試圖使用一個名爲employDesc變量,你應該使用CKEDITOR.instances["employDesc"]; 或只是

$('.addVacancy').click(function() { 
    var editor = CKEDITOR.instances.employDesc; 
    if (editor) { 
     alert('instance exists'); 
     editor.destroy(true); 
     alert('destroyed'); 
    } 
    CKEDITOR.replace('employDesc'); 
}); 

這是你試圖做同樣的。

0

我找不到任何在線發佈的解決方案。但這個工作對我來說:

var notes = 'div-name'; 
$('#'+notes).html(''); 
CKEDITOR.appendTo(notes); 

代替CKEDITOR.replace,我用CKEDITOR.appendTo

希望這樣可以節省一些可憐的靈魂一些寶貴的時間。

0
if (CKEDITOR.instances['tresc']) { 
    CKEDITOR.remove(CKEDITOR.instances['tresc']); 
} else{ 
    CKEDITOR.replace('tresc'); 
} 
0

我使用類似這樣的代碼來檢查編輯器是否沒有定義之前,創建一個新的實例。我認爲這比我嘗試過的更好。

var editor = CKEDITOR.instances.['employDesc']; 
    if (!editor){ 
     CKEDITOR.replace('employDesc'); 
    } 
相關問題