是否有可能参数化jQuery addClass()
方法? 像,有一个颜色属性的css类,当addClass()
方法被调用时设置?参数化jQuery addClass?
我希望是有道理的,因为我很新JavaScript和CSS。如果这很重要,我正致力于扩展MediaWiki VisualEditor的。这种方法用于立即显示/渲染编辑器中所做的更改。但是我找不到需要参数化的例子。
如果这是不可能的,我很想知道如何去做。
如果不是,也许有人可以建议如何实现我想要的另一种方式?
编辑:
这就是当前的状态: 当我加入一些注释文字,比方说,一个languageAnnotation,这就是所谓的:
this.$element
.addClass('ve-ce-languageAnnotation')
.addClass('ve-ce-bidi-isolate')
.prop({
lang: this.model.getAttribute('lang'),
dir: this.model.getAttribute('dir'),
title: this.constructor.static.getDescription(this.model)
});
这是VE-CE-languageAnnotation:
.ve-ce-languageAnnotation {
border-bottom: 1px dashed #ccc;
background-color: #ebf3f5;
}
这是VE-CE-比迪 - 分离株:
.ve-ce-bidi-isolate {
unicode-bidi: isolate;
unicode-bidi: -moz-isolate;
unicode-bidi: -webkit-isolate;
}
我把它解释为prop()
函数设置某种参数。因此,这是我想为我的文字颜色标注:
this.$element
.addClass('ve-ce-textColorAnnotation')
.prop({
color: this.model.getAttribute('style'),
title: this.constructor.static.getDescription(this.model)
})
;
随着VE-CE-TextColorAnnotation:
.ve-ce-textColorAnnotation {
color: red;
}
这总是产生红色。当我尝试输入其他东西然后是合法的颜色时,没有任何反应。
Edit2:我想一个选择是为每种可能的颜色创建一个类,并根据参数添加正确的类?像这样:
var color = this.model.getAttribute('style');
if (color == 'blue') {
this.$element.addClass('blueText')
} else if (...
但这看起来不是个好主意。
编辑3:According to the top answer in this question,我想要的是不可能的 - 但我可以直接应用一个属性,而不使用类,通过使用这个$ element.css('attr','value')。我想我可以用它来满足我需要的东西。
你能告诉我们你到目前为止所尝试过的吗? – Gerwin
你的意思是总是添加所说的类,当addClass被调用? – GMchris
*喜欢,在调用addClass()方法时设置一个具有color属性的css类?*这是'addClass()','.removeClass()'和'.toggleClass()'的主要目标。 。只要把课堂当成一个国家(即开,关,高,低,显示,隐藏等等) – zer00ne