Hello!
I have a page which is dynamically generated, and may have zero, one or many CKeditor Editors.
I would like to attach an event to each of these editors which fires on "keyup". I have managed to do this successfully; however, it is very important that I know which editor fired the event.
Here is my code so far. It is wrapped by a loop, which goes through each possible editor id, so I don't know what the id is at runtime.
Is there another way I can do this, so I can get the name of the editor from the event?
I really appreciate any help.
I have a page which is dynamically generated, and may have zero, one or many CKeditor Editors.
I would like to attach an event to each of these editors which fires on "keyup". I have managed to do this successfully; however, it is very important that I know which editor fired the event.
Here is my code so far. It is wrapped by a loop, which goes through each possible editor id, so I don't know what the id is at runtime.
CKEDITOR.instances[id].on("instanceReady", function(event) { //set keyup event alert(event.editor.name) //this correctly gives me the name this.document.on("keyup", function(event) { alert(event.editor.name); //this is undefined. }); });
Is there another way I can do this, so I can get the name of the editor from the event?
I really appreciate any help.
Re: keyup event, determining which editor?
Still, this should be trivial to solve with a closure, no?
Re: keyup event, determining which editor?
I gave that a try . The problem is, in your example, the editor variable is essentially global. So, editor.name is successfully alerted only if the editor variable remains unchanged by the time you have pressed the key. If you have more than one editor on the page, only the last editor will be remembered.
I think it's a must to have the editor passed to the key event, as it is with other events. Otherwise, the key event doesn't work when you have a variable number of editors on the page. Interestingly, event.editor does exist in the keyup event, but it is undefined.
Would it be possible to have this registered as a bug?
Re: keyup event, determining which editor?
No, it doesn't have to be global. Read about closures in Javascript. It'll change your life.
quickly, untested:
Re: keyup event, determining which editor?
Your solution (with a couple of small changes) worked perfectly. The concept of "closures", which I didn't know about, was exactly what was needed.
Thanks a lot for your help!