Цель состоит в том, чтобы иметь небольшую иконку на моей странице администратора. Нажав на этот значок, вы откроете модальное окно с экземпляром ckeditor textarea. Пользователь редактирует текст, сохраняет его и модальный закрывает. Моя проблема в том, что если я снова нажму на значок, новый экземпляр редактора пуст. Ниже вы можете увидеть соответствующие коды
Часть HTML:
<a id="editShortText" title="Short Description" href="#saveShortTextFrm"><img src="clickme.gif"> <div style="display:none"> <form action="" method="post" id="saveShortTextFrm" name="saveShortTextFrm" class="frm"> <textarea class="jquery_texteditor" name="short_text_english" id="short_text_english" style="width:700px; height:400px;"><? echo $value_from_db;?></textarea> <div align="center" style="margin:20px;"><input name="submit1" type="submit" value="Save" /></div> </form> </div>
JS Script:
$("#editShortText").fancybox({ 'scrolling': 'no', 'titleShow': false, 'onStart': function() { $('.jquery_texteditor').ckeditor(config); }, 'onComplete': function() { $('.jquery_texteditor').ckeditor(config); }, 'onClosed': function() { $('.jquery_texteditor').ckeditor(config); } }); $("#saveShortTextFrm").live("submit", function() { $.fancybox.showActivity(); $.ajax({ type : "POST", cache : false, url : "_save_text.php", data : $(this).serializeArray(), success: function(data) { if (data!='') { $("#shortTtextImageHolder").html('<img src="images/button_accept.gif" border="0">'); if(CKEDITOR.instances["jquery_texteditor"]) { delete CKEDITOR.instances["jquery_texteditor"]; $('.jquery_texteditor').ckeditor(config); $("#short_text_english").val(data); CKEDITOR.instances.short_text_english.setData(data); } } else { $("#shortTtextImageHolder").html('<span class="error">SOS</span>'); } $.fancybox.close(); } }); return false; });
Все работают хорошо для первого щелчка – когда я впервые нажимаю ссылку / изображение. Если я снова нажму (после сохранения модальных данных или просто закрытия модального окна), новый модальный загорается, но текстовая область пуста данных.
Есть какие нибудь идеи как это починить?
Когда вы закрываете модальную попытку использовать
CKEDITOR.instances.short_text_english.destroy(true);
или
if (CKEDITOR.instances.short_text_english) { CKEDITOR.instances.short_text_english.setData(""); CKEDITOR.instances.short_text_english.destroy(true); }