我在#container
当我使用$('#container').hide()
然后使用$('#container').show()
时,tinyMCE会抛出:
无法读取未定义的属性“选择”
我正在使用jquery插件,所以这就是我设置的方式:
$('#container textarea').tinymce({ /* options */ });
我应该做些什么?
答案 0 :(得分:10)
这里使用的正确命令是
// editor_id is the id of your textarea and
// tinymce will use this id to uniquely identify this editor instance
editor_id = $("#container textarea").attr('id');
tinymce.get(editor_id).hide();
再次使用
tinymce.get(editor_id).show();
答案 1 :(得分:1)
这个问题是关于隐藏和显示tinymce编辑器,但如果有人来到这里关于删除和重新添加tinymce编辑器没有错误,那么我的解决方案可以为他们工作。
删除现有的tinymce编辑器并添加tinymce.EditorManager.editors数组的新需求清除。此解决方案适用于以下两种情况:1。如果您只有一个编辑器,并且想要删除并再次添加它。 2.如果您有多个编辑器,并且想要删除某些特殊编辑器并再次添加它。
console.log(tinymce.EditorManager.editors);
这将为您提供要删除的所需编辑器的数组和精确索引的视图。例如,上述控制台的一个示例输出可以是:
Array[2]
0:B
1:B
length:2
textarea-1:B
textarea-2:B
_proto_Array[0]
当我在textareas上有两个tinymce编辑器时,这是控制台的输出:#textarea-1和#textarea-2假设我想删除#textarea-2并重新添加它然后可以按如下方式完成:
tinymce.EditorManager.editors.splice(1, 1);//removing second element in array.
delete tinymce.EditorManager.editors['textarea-2'];//deleting respective textarea id from array
然后你可以使用init:
再次添加它tinymce.init({
selector:'#ts-textarea-2'
});
如果你只有一个与tinymce编辑器关联的textarea,请说:#textarea-1,你想删除并重新初始化它然后你可以通过以下方式清空tinymce.EditorManager.editors:
tinymce.EditorManager.editors = [];
然后您可以使用init命令添加,如上所述。为我工作没有任何错误。
我希望它有所帮助
答案 2 :(得分:0)
不要隐藏它,而是尝试将其发送到屏幕外 - 例如:
$('#container').css('left', '-1000px');
EDIT / UPDATE:
你也可以在隐藏()容器之前尝试从textarea中删除TinyMCE,然后在show()之后将其恢复。但是你需要给你的textarea一个#ID:
//To Enable
tinyMCE.execCommand('mceAddControl', false, $("#container textarea").attr('id'));
//To Disable
tinyMCE.execCommand('mceRemoveControl', false, $("#container textarea").attr('id'));
答案 3 :(得分:0)
显然是动画片。如果我显示()/ hide()我很好,但是当我尝试在tinyMCE中制作动画时,我完成动画后会出现问题,一旦textarea的显示不是空,可能会尝试设置选项。