使用javascript jQuery函数设置css属性
Set css property using javascript-jQuery function
我需要动态更新css属性,
实际css属性:
#Controls > ul > li:hover:after{
top:100px;
/* other property */
}
我需要设置top=-100px动态。
我做了什么:
$("#Controls > ul > li:hover:after").css("top", "-100%"); // Its not working
我尝试的第二个选项:
创建了一个新的css类:
.topTip{top:-100% !important;}
然后
$("#Controls > ul > li:hover:after").addClass("topTip") //Again not working.
如果您有其他选择,请提出建议。
感谢收看问题。
更多解释
这用于工具提示UI,当鼠标悬停在li标记上时。
当前(默认)在文本"成功订阅"底部可见的工具提示
**HTML:**
<div id="Controls">
<ul class="hideMobile">
<li tooltip="This is tooltip" class="SubscribeTool">
<a id="#" class="liked" > success subscribe</a>
</li>
完成css:
#Controls > ul > li:hover:after {
position:absolute; top:100%; left:-5px; padding:0 10px; margin-top:5px; content:attr(tooltip); width:auto; height:auto;
display:inline-block;
background:#e55302; color:#fff; font:600 11px/25px Arial, Helvetica, sans-serif; text-align:center;
z-index:9999999999 !important; border-radius:2px; text-shadow:1px 1px 1px rgba(0,0,0,.4);
}
现在,在完成一些功能后,我需要显示工具提示,其中top=-100%
问题是您不能用JavaScript瞄准伪元素(:after
)。它们是特定于CSS的,不暴露在DOM中供JavaScript访问(或修改)。
如果-100px
是一个固定值,解决方法是在CSS中添加一个单独的类来处理这个问题:
#Controls > ul > li.topTip:hover:after {
top: -100px;
}
然后您可以使用jQuery:进行切换
$("#Controls > ul > li").addClass("topTip");
您不能做您试图做的事情,因为伪元素不是DOM树的一部分,所以您不能使用DOM API更改它们的属性。
相反,您可以尝试另一种方法:再添加一个类来定义必要的样式。例如:
#Controls > ul > li.topTip:hover:after {
top: -100px;
}
注意:在这种情况下不需要!important
然后分配新的类别
$("#Controls > ul > li").addClass("topTip");
相关文章:
- 谷歌图表-如何更改整个表的css属性
- 将css属性替换为变量
- 使用Jquery/Javascript替换CSS属性
- 如何使用JavaScript查找未定义的CSS属性的值
- 在jquerymobile中设置按钮css属性的动画
- JavaScript无法提取引号css属性
- 使用AngularJS动态更改css属性
- 使用javascript获取具有特定CSS属性的所有元素
- 将css属性添加到对象的集合中
- 取消img的css属性宽度和高度(不能使用“auto”)
- CSS属性更改侦听器
- 如何更改与Backbone集合中的模型相关联的几个元素的css属性
- 如何使用java脚本或jQuery基于相同的特定css属性对元素进行分组
- 如何在不链接/jquery的情况下使用方法应用css属性数组
- 在 javascript css 属性中使用变量
- 在jQuery中链接时CSS属性不起作用
- jQuery检查CSS宽度是否大于0,然后添加CSS属性
- 使用循环增加css属性值
- 更改类所选空输入的CSS属性
- 无法查找元素'手动加载CSS文件时的CSS属性