2017-12-18 174 views
0

我一直在尋找大量的文檔和示例,但我還沒有找到答案。這裏是我的問題,我有我的CKEditor stylesSet內將以下代碼:添加另一種風格而不刪除以前(CKEditor 4)

{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'); 
} }, 

如果我有了樣式/班「全列」,然後添加樣式/類」 .disable,彈出一個元素「對於同樣的元素,」.full-column「被刪除。我如何在元素中保留這兩個類?我如何才能刪除所選的樣式/類,如果它之前已被選中的元素。

所有幫助非常感謝。

回答

0

在JavaScript中,您可以使用classList屬性將類添加到元素現有類列表。該屬性公開了add函數,該函數可用於將新類名添加到列表中。

您首先需要獲取對您希望操作的DOM元素的引用。

const el = document.getElementById('some-element'); 

接下來,你可以,如果你想以後刪除類,你可以使用remove功能你想要的類添加到元素

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

或者。

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'); 
    } 
} 

古怪,我不認爲有將返回元素,只是伴奏或hasClass()功能上CKEDITOR.dom.element類的功能。

+0

謝謝盧克!只是想知道如何在CKEditor中實現這種功能,因爲添加/刪除類的方式與stylesSet一樣,但是我會不知何故需要添加這個classList屬性,任何想法? – nikoka

+0

我已經更新了我的解決方案。也許這會工作? –

+0

感謝盧克,不幸的是,拋出「未捕獲的SyntaxError:意外的令牌{」 – nikoka