複数の ckeditors を含むページがあります。
http://i.stack.imgur.com/8l4vB.png
エディターのラッパーはドラッグ可能です。エディターの 1 つを別の位置にドラッグ アンド ドロップすると、編集できなくなり、コンテンツが消えます。
http://i.stack.imgur.com/yvSzs.png
その特定のエディターを破棄してから再初期化することでこれを解決できると思いましたが、そうすると次のエラーが発生します。
キャッチされていない TypeError: null ckeditor.js:635 のメソッド 'clearCustomData' を呼び出せません
誰もこの問題に遭遇したことがありますか?
これは私が使用しているJavaScriptです:
function initSortable() {
$('.sortable').sortable({
handle : '.sortable-handle'
}).bind('sortupdate', function(e) {
updateBlockOrder();
// Get the dropped content block
var _el = $(e.delegateTarget).children('.dropped');
if (_el.find('.rte').length) {
// Get id of each area and re-initialize
_el.find('.rte').each(function(){
var _id = $(this).attr('id');
console.log(_id);
var editor = CKEDITOR.instances[_id];
console.log(editor);
editor.destroy();
});
}
});
}
出力は次のとおりです。
form-blocks-2-body app.js:540
b {element: CKEDITOR.dom.element, elementMode: 1, name: "form-blocks-2-body", _: Object, commands: Object…}
_: Object
blockless: false
commands: Object
config: b
container: CKEDITOR.dom.element
dataProcessor: CKEDITOR.htmlDataProcessor
element: CKEDITOR.dom.element
elementMode: 1
filter: CKEDITOR.filter
focusManager: CKEDITOR.focusManager
getClipboardData: function (b,c){function e(a){a.removeListener();a.cancel();c(a.data)}
id: "cke_3"
instanceReady: true
keystrokeHandler: CKEDITOR.keystrokeHandler
lang: b
langCode: "en"
loaded: true
mode: "wysiwyg"
name: "form-blocks-2-body"
plugins: Object
readOnly: false
resetUndo: function (){b.reset();a.fire("saveSnapshot")}
status: "ready"
tabIndex: 0
templates: Object
toolbar: Array[13]
toolbox: t
ui: CKEDITOR.ui
__proto__: Object
app.js:542
Uncaught TypeError: Cannot call method 'clearCustomData' of null