Jquery 在多个文本区域上初始化TinyMCE-变量范围问题?
我将tinyMCE应用于WordPress元数据库中的一些文本区域。我将动态添加区域,因此无法使用Jquery 在多个文本区域上初始化TinyMCE-变量范围问题?,jquery,wordpress,tinymce,tinymce-4,Jquery,Wordpress,Tinymce,Tinymce 4,我将tinyMCE应用于WordPress元数据库中的一些文本区域。我将动态添加区域,因此无法使用wp\u editor()函数。我很接近,但我在通过一些设置时遇到了困难 按原样,下面的代码似乎只初始化集合中的最后一个textarea。但是,如果在.each()循环中取消注释var设置声明,则它们都将被激活。我想这与范围有关,因为我完全迷路了,因为我无法在我的电脑上重现它 最后,我想借用默认的post editor设置,然后更改选择器。。。可能通过jQuery的.extend()。我想我可以每次
wp\u editor()
函数。我很接近,但我在通过一些设置时遇到了困难
按原样,下面的代码似乎只初始化集合中的最后一个textarea。但是,如果在.each()
循环中取消注释var设置
声明,则它们都将被激活。我想这与范围有关,因为我完全迷路了,因为我无法在我的电脑上重现它
最后,我想借用默认的post editor设置,然后更改选择器。。。可能通过jQuery的.extend()
。我想我可以每次使用.each()
运行.extend()
,但这似乎效率低下
jQuery(document).ready(function ($) {
var settings = { menubar : false };
$('textarea.wp-editor-area').each( function( i ) {
var id = $(this).attr( 'id' );
if ( !id) {
id = 'mceEditor-' + ( i );
$( this ).attr( 'id', id );
}
//var settings = { menubar : false };
settings.selector = "#" + id ;
try {
tinymce.init( settings );
} catch(e) {}
}); //end each
});
另一方面,如果我使用tinymce.execCommand('mceAddEditor',true,id),则.each()
循环可以工作
在.execCommand()
和.init()
之间有什么明显的区别吗?如果我使用不同的tinyMCE模式(例如特定的文本区域),它也可以工作,我现在真的很好奇为什么它可以在我的小提琴中工作,但不能在我的站点中工作 仍然无法评论
与其使用它们的ID添加它们,为什么不能使用:
settings.selector: "textarea.wp-editor-area"
这会初始化所有匹配的文本区域吗?这样就不需要循环。克隆WP编辑器时,我使用init方法填充TMCE设置,并使用tinymce.execCommand('mceAddEditor',true,id)方法将编辑器实际添加到页面中。我的理解是init方法提供参数,mceAddEditor命令使用init对象中提供的设置实例化编辑器。我没有提供选择器参数,它是通过'mceAddEditor'命令的ID参数提供的。我在
mceAddEditor
方面也取得了一定程度的成功。我刚才被弄糊涂了,为什么循环的init
方法只能在小提琴中工作,而不能在WP-admin中工作。你应该能够通过连接do\u操作('WP\u-tiny\u-mce\u-init',self:$mce\u-settings)来获得默认页面编辑器设置。
如果我没记错的话,这在初始DOM上工作得很好,但是当我动态添加文本区域时,似乎没有初始化tinyMCE。我用jQuery动态添加了文本区域,但总是用选择器调用full.init函数,这对我很有用。