繁体   English   中英

根据选择更新RichCombo的标签-CKEditor

[英]Update the Label of a RichCombo according to Selection - CKEditor

我有一个自定义RichCombo,可以选择字体。 它通过一些数据并创建其选项,而“特殊功能”由具有相应字体系列集的跨度组成,而不仅仅是纯文本。

字体选择器

现在,我想在每次更改时以及从外部更改/更新此RichCombo框的valuelabel 基本上,它的行为应与默认的字体选择框完全相同。

editor.ui.addRichCombo( 'FontFamily', {
    multiSelect : false,
    label: 'Schriftart',
    title: 'Schriftart',
    className:   'cke_format',
    panel: { css:[CKEDITOR.skin.getPath("editor")].concat(editor.config.contentsCss) },
    toolbar: 'font',
    init: function() {
        for (var i=0; i < allFonts.length; i++) {
            this.add(
                allFonts[i].class,
                '<span class="'+ allFonts[i].class +'">' + allFonts[i].label + '</span>',
                 allFonts[i].label
             );
        };
    },
    onClick: function(value) {
         updateFontCorrectly();
    }
}

请注意,实际上有更多代码代替updateFontCorrectly()函数。

我希望能够做类似的事情

this.setValue("Times New Roman");

(而不是通过变量),从onClick函数内部以及从外部全局进行。

从理论上讲,上面的代码可以正常工作,但是在一次使用后会完全破坏盒子。 某些类的jQuery目标(位于CKEditor源代码深处)似乎在使用一次后会失败,并且RichCombo拒绝打开。

我把它剥下来

this._.value = "Times New Roman";

但这在一次使用后也会中断。

我必须在这里完全错过一些东西。 我该如何工作?

事实证明,这确实很简单。

this.setValue(foo, "Text");

唯一棘手的部分是foo必须是有效值,例如,它存在于this._.items

如果无效,richCombo将中断。 “文字”可以是您想要的任何文字。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM