Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 在多个文本区域上初始化TinyMCE-变量范围问题?_Jquery_Wordpress_Tinymce_Tinymce 4 - Fatal编程技术网

Jquery 在多个文本区域上初始化TinyMCE-变量范围问题?

Jquery 在多个文本区域上初始化TinyMCE-变量范围问题?,jquery,wordpress,tinymce,tinymce-4,Jquery,Wordpress,Tinymce,Tinymce 4,我将tinyMCE应用于WordPress元数据库中的一些文本区域。我将动态添加区域,因此无法使用wp\u editor()函数。我很接近,但我在通过一些设置时遇到了困难 按原样,下面的代码似乎只初始化集合中的最后一个textarea。但是,如果在.each()循环中取消注释var设置声明,则它们都将被激活。我想这与范围有关,因为我完全迷路了,因为我无法在我的电脑上重现它 最后,我想借用默认的post editor设置,然后更改选择器。。。可能通过jQuery的.extend()。我想我可以每次

我将tinyMCE应用于WordPress元数据库中的一些文本区域。我将动态添加区域,因此无法使用
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函数,这对我很有用。