7

按照以下说明操作:http: //www.farinspace.com/multiple-wordpress-wysiwyg-visual-editors/

我的元框中有一些不错的所见即所得编辑器

我的标记看起来像:

 <div class="sortable">
 <div class="sortme">
<?php $mb->the_field('extra_content2'); ?>
        <div class="customEditor"><textarea name="<?php $mb->the_name(); ?>"><?php echo wp_richedit_pre($mb->get_the_value()); ?></textarea></div>
</div>
 <div class="sortme"
<?php $mb->the_field('extra_content3'); ?>
        <div class="customEditor"><textarea name="<?php $mb->the_name(); ?>"><?php echo wp_richedit_pre($mb->get_the_value()); ?></textarea></div>
</div>
</div>

这只是 WP_alchemy(也来自 farinspace.com),用于包装在 div 中的 textarea

以及告诉 tinymce 启动的脚本:

function my_admin_print_footer_scripts()
{
    ?><script type="text/javascript">/* <![CDATA[ */

        jQuery(function($)
        {
            var i=1;
            $('.customEditor textarea').each(function(e)
            {
                var id = $(this).attr('id');

                if (!id)
                {
                    id = 'customEditor-' + i++;
                    $(this).attr('id',id);
                }
                tinyMCE.execCommand('mceAddControl', false, id);

            });
        });
    /* ]]> */</script><?php
}

// important: note the priority of 99, the js needs to be placed after tinymce loads
add_action('admin_print_footer_scripts','my_admin_print_footer_scripts',99);

那部分工作正常。但是当我尝试启动 jqueryUI 可排序时:

$('.sortable').sortable();

它让我对多个 .sortme div 进行排序,但编辑器中的内容消失了。我怎样才能让文字持续存在?它在没有 tinymce 编辑器的情况下工作得很好,所以我认为这是一种冲突。

4

1 回答 1

10

此 ( $('.sortable').sortable();) 不适用于 tinymce 编辑器。Tinymce 不喜欢被拖到 dom 周围。为了使其正常工作,您首先需要关闭 Tinymce

tinyMCE.execCommand('mceRemoveControl', false, id);

然后排序然后重新初始化它们

tinyMCE.execCommand('mceAddControl', false, id);
于 2011-05-05T09:12:05.570 回答