Question

I have found a few similar posts on this on Stack overflow but there are none with an answer that is working.

I have a few tabs on a page, depending on that li they click on they will see a specific tab. In one of the tabs there is a CKeditor which is initiated on the click of the li. When they user clicks off that specific tab onto another one, and then returns there is this error:

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

Here is the 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');
    });

Both of the alerts appear but then it breaks as the error comes on in the console. Can anyone help with this?

Thanks

Was it helpful?

Solution

You're trying to use a variable named employDesc, you should use CKEDITOR.instances["employDesc"]; or just

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

It's the same that you were trying to do.

OTHER TIPS

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

I am using something like this code to check if the editor is not defined before, create a new instance. I think this is better from those I have tried.

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

i couldn't find any solutions posted online that worked. but this worked for me:

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

instead of CKEDITOR.replace, I used CKEDITOR.appendTo

hope this saves some poor soul some precious time.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top