添加另一个样式而不删除前一个(CKEditor 4)

时间:2017-12-18 09:32:12

标签: javascript css ckeditor

我一直在查看大量的文档和示例,但我没有找到答案。这是我的问题,我在CKEditor stylesSet中有以下代码:

{name: 'Full Column Photo', element: 'img', attributes: { 'class': 'full-
column' }, childRule: function( element ) {
    return !element.is( 'img' );
}},
{ name: 'Disable Image Popup', element: 'img', attributes: { 'class': 
'disable-popup' }, childRule: function( element ) {
return !element.is( 'img' );
} },

如果我有一个具有样式/类“.full-column”的元素,然后将样式/类“.disable-popup”添加到同一个元素,则会删除“.full-column”。如何在元素中保留两个类?如果之前已经为元素选择了样式/类,我该如何才删除它。

所有人都非常感谢。

1 个答案:

答案 0 :(得分:0)

在JavaScript中,您可以使用classList属性将类添加到元素现有类列表中。该属性公开const el = document.getElementById('some-element'); 函数,该函数可用于向列表中添加新的类名。

首先需要获得对要操作的DOM元素的引用。

el.classList.add('new-class');

接下来,您可以将所需的类添加到元素

remove

或者,如果您想稍后删除该课程,可以使用el.classList.remove('new-class'); 功能。

attributes.class

编辑:根据您的评论,您是否可以将{ name: 'Disable Image Popup', element: 'img', attributes: { 'class': function() { element.addClass('disable-popup'); return ''; } }, childRule: function( element ) { return !element.is( 'img' ); } } 属性指定为返回您拥有的对象的函数。类似的东西:

CKEDITOR.dom.element

奇怪的是,我不认为有一个函数会返回元素上的hasClass()类,只返回样式或<FormSettings>函数。