在多个textareas上初始化TinyMCE - 变量范围问题?

时间:2014-03-30 22:49:34

标签: jquery wordpress tinymce tinymce-4

我将tinyMCE应用于WordPress元变量中的某些textareas。我将动态添加区域,因此无法使用wp_editor()功能。我非常接近,但我很难通过一些设置。

原样,以下代码似乎只是初始化集合中的最后一个textarea。但是,如果取消注释var settings循环中的.each()声明,则它们都会被激活。我认为这与范围有关,因为我完全迷失了,因为我无法在我的fiddle上重现它。

最后,我想借用默认的帖子编辑器设置,然后只需更改选择器......可能是通过jQuery' s .extend()。我想我每次都可以使用.extend()运行.each(),但这似乎效率低下。

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 

});

http://jsfiddle.net/helgatheviking/gDNdz/5/

另一方面,如果我使用.each(),则tinymce.execCommand( 'mceAddEditor', true, id );循环有效吗.execCommand().init()之间是否存在明显差异?如果我使用不同的tinyMCE模式(例如specific_textareas),它也可以工作,我现在真的好奇为什么它可以在我的小提琴中工作但不在我的网站中。

1 个答案:

答案 0 :(得分:0)

仍然无法发表评论......

不是使用他们的ID添加它们,为什么不能使用:

settings.selector: "textarea.wp-editor-area"

这会启动所有匹配的textareas吗?这样就不需要循环了。