Редактор уничтожить
Редактор WYSIWYG от: https://github.com/dybskiy/redactor-js
Версия JQuery: jquery-1.10.1.min.js (также пробовал 1.9.0, который поставляется в демоверсии)
На самом деле, значок редактирования отображается в правом верхнем углу содержимого, нажмите кнопку, чтобы изменить содержимое в WYSIWYG-редакторе, а также измените значок на X для отмены.
Onclick X, уничтожить редактор, WYSIWYG редактор вернуться к исходному тексту
Следуя инструкциям на этой странице: http://imperavi.com/redactor/examples/click-to-edit/ Разница в том, что я не хочу 2 функции, я объединяю их в 1 функцию, в зависимости от того, какой класс editContainer будет зависеть от того, какой if-else выполняется
Проблема:.redactor ("уничтожить"); не работает
<style>
#editContainer {
position: absolute;
right: 5px;
top: 5px;
width: 16px;
height: 16px;
}
#editContainer.edit {
background: url("../img/icon-edit-16.png") no-repeat 0 0;
z-index: 999;
cursor: pointer;
}
#editContainer.cancel {
background: url("../img/icon-error.png") no-repeat 0 0;
z-index: 999;
cursor: pointer;
}
</style>
<div id='headerRightContent'>
xxx
</div>
<div id='editContainer' class='edit' onclick=cmsEdit();></div>
<script type='text/javascript'>
function cmsEdit() {
if ( $('#editContainer').hasClass('edit') ) {
$('#headerRightContent').redactor({ focus: true });
$('#editContainer').removeClass('edit').addClass('cancel');
}else if ( $('#editContainer').hasClass('cancel') ) {
var html = $('#headerRightContent').redactor('get');
$('#headerRightContent').redactor('destroy');
$('#editContainer').removeClass('cancel').addClass('edit');
}
}
</script>
2 ответа
Для тех, кто испытывает эту проблему с Redactor II, команда немного изменилась.
$('#headerRightContent').redactor('core.destroy');
Если вы покупаете лицензию RedactorJS, destroy
метод отлично работает с последней версией 9.1.1
ИЛИ обновите свой код следующим образом:
destroy: function()
{
clearInterval(this.autosaveInterval);
$(window).off('.redactor');
this.$element.off('.redactor').removeData('redactor');
var html = this.get();
if (this.opts.textareamode)
{
this.$box.after(this.$source);
this.$box.remove();
this.$source.val(html).show();
}
else
{
var $elem = this.$editor;
if (this.opts.iframe) $elem = this.$element;
this.$box.after($elem);
this.$box.remove();
$elem.removeClass('redactor_editor').removeClass('redactor_editor_wym').removeAttr('contenteditable').html(html).show();
}
if (this.opts.air)
{
$('.redactor_air').remove();
}
},