在这个小提琴上,当我单击禁用“Li Point1”时,文本 eb 变灰http://jsfiddle.net/adrianjsfiddlenetuser/Q9sHz/14/
可以保持元素的原始样式(不灰显)吗?
在这个小提琴上,当我单击禁用“Li Point1”时,文本 eb 变灰http://jsfiddle.net/adrianjsfiddlenetuser/Q9sHz/14/
可以保持元素的原始样式(不灰显)吗?
你有三个选择。您可以从 jquery-ui.css 中删除样式.ui-state-disabled
,您可以覆盖您自己的自定义样式表中的样式,或者您可以将更改的属性标记为!important
.
删除样式
要删除样式,您需要编辑jquery-ui.css
并查找.ui-state-disabled
规则(在 jQuery 1.7.2 中,它位于第 262 行)。删除其中的所有样式(您会看到三个、opacity
、filter
和background-image
.
这样做的缺点是,如果您更新了 jQuery 并获得了一个新的 CSS 文件来配合它,您将丢失您的编辑。
添加自己的样式表
您可以为禁用元素添加自己的规则.ui-state-disabled
并更改其样式。由于ui-state-disabled
用于 jQuery 中被禁用的所有内容,我建议将您的规则定义为独有的li
,或者在您的上设置一个类ul
并专门为此定义样式。
<ul class=".noStyleDisableDrag">
...
</ul>
.noStyleDisableDrag .ui-state-disabled {
opacity: 1;
filter: none;
background-image: inherit;
}
标记为 !important
您还可以将不透明度、过滤器和背景图像样式添加到定义该特定项目应该如何显示和使用!important
标志的其他规则中。不过,这不是最推荐的做事方式,因为如果您忘记标记它,它可能会对您的 CSS 样式调试造成严重破坏,但它是一种选择。为此,您只需将您的样式设置li
为:
li {
opacity: 1 !important;
filter: none !important;
background-image: (whatever you want, or none) !important;
}
请注意,在这种情况下,如果您没有在可拖动对象上设置背景图像,则不需要该行来设置背景图像;刚刚设置opacity
并被filter
取消覆盖。另请注意,这些可以被 JavaScript 覆盖,因此它们不是一成不变的。
在这三个中,您可能需要使用组合。我的建议是使用您自己的自定义样式表来覆盖opacity
和filter
属性。如果您使用背景图像,您可能需要使用!important
它来防止它被ui-state-disabled
规则删除。但!important
尽可能少用标志。
第 262 行 jquery-ui.css 删除过滤器和不透明度行
.ui-state-disabled, .ui-widget-content .ui-state-disabled,
.ui-widget-header .ui-state-disabled {
background-image: none;
}
单击禁用按钮会ui-state-disabled
向元素添加一个 CSS 类。只需覆盖该类的样式即可。
.ui-state-disabled { opacity:1; }