背景:
我有一个带有指向右箭头的文本,单击文本/箭头将显示一个div并将arrowRight替换为arrowDown。
问题:
问题源于我的代码根据.css文件中的顺序工作的事实,我不知道为什么这对jQuery很重要。
CSS:
.arrow{display:inline-block; width:15px; height:10px;background-repeat:no-repeat;}
.arrowRight{background-image:url("../graphics/triangleRight.gif"); }
.arrowDown{ background-image: url("../graphics/triangleDown.gif");}
HTML:
<div id="showListOfBids" class="align-c">
List of Bids <div class="arrow arrowRight">
</div>
查询
$("#showListOfBids").click(function(){
$(".bidList").toggleClass("show");
$(".arrowRight").toggleClass("arrowDown");
});
开发人员工具>元素
切换添加和删除arrowDown
切换关闭:
<div class="arrow arrowRight"></div>
开启:
<div class="arrow arrowRight arrowDown"></div>
问题:为什么.arrowDown类的顺序会影响显示?AFAIK使用jQuery时不会重新解析css文件。jQuery将类添加到DOM,而解析器仅搜索该元素。
评论:我不喜欢在课堂上加倍学习。我使用不正确吗?我正在使用removeClass和addClass并切换到toggleClass
为什么.arrowDown类的顺序会影响显示?
因为这就是CSS的工作方式。如果有两个具有相同特异性的规则,则该规则将出现在文件的后面。
就您而言,两者.arrowRight
和.arrowDown
具有相同的特异性。如果这两个类别都包含一个元素,则.arrowDown
获胜。如果您切换规则,.arrowRight
将获胜。
AFAIK使用jQuery时不会重新解析css文件。jQuery将类添加到DOM,而解析器仅搜索该元素。
没错,它与jQuery无关。浏览器仅查看元素具有哪些类,并为其应用规则。
因此,CSS规则的顺序很重要,与JavaScript或jQuery无关。认为它是“功能”。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句