每个人。我搜索了这个网站和其他许多人来理解toggleClass函数为什么不能在我的Jquery代码中工作,尽管我已经找到了几种不同的解释,但它们并不符合我想要的效果。jquery - toggleClass不更改背景图片
我对Jquery很新,所以我不确定Jquery的功能。这里是我的jquery代码:
$("document").ready(function(){
$("div#btn-slide").click(function(){
$("div#panel").slideToggle("slow");
$("div#btn-slide").toggleClass("smallbox");
});
});
这是我的HTML代码。
<div id="panel">
</div>
<div id="btn-slide">
</div>
我在这里寻找的效果非常简单。点击较小的div(btn-slide)时,位于较小div上方的较大div(面板)将会进入浏览器屏幕直至完全隐藏,这就是为什么我使用slideToggle(“slow” )功能。
然后,我想要做的最后一件事是更小的div(btn-slide)更改其背景图像。这就是我使用toggleClass(“smallbox”)的原因。 smallbox类位于我的CSS文件中,并且背景图像中有一个箭头指向下方。当较大的div(面板)滑入其隐藏位置时,这是我想要在较小的div(btn-slide)中显示的图像。
我得到这个工作的唯一方法是进入我的CSS文件,并将!important放在'smallbox'CSS类的背景图像的末尾,但我想知道正确的Jquery技术来达到这个效果。
注意:我希望能够点击较小的div(btn-slide),并且每次单击它时将背景图像更改为适当的箭头。
我该如何实现这种效果?
谢谢!
更新:我非常感谢您的回复。好的,所有的回复都让我思考,所以我再次回顾了toggleClass函数,并且我相信我已经获得了可以正常工作的代码。这是我的CSS代码。现在
#PANEL {
width: 240px;
height: 320px;
background-color: #000000;
margin: 0px auto;
}
#BUTTON {
width: 100px;
height: 50px;
background-image:url(Arrow_Up.jpg);
background-repeat: no-repeat;
margin: 0px auto;
}
#BUTTON.GoUp {
background-image:url(Arrow_Down.jpg);
}
,什么我的失误显然已是我本身与指定的背景图片添加类.GoUp,而不是追加新类#键。我改变了代码,现在一切似乎都正常。
再次感谢大家的快速回复!
首先:$(“document”)应该是$(文档) – Candide
关键在于你没有透露的CSS。我的猜测是你没有规则的顺序或CSS特异性是正确的。向我们展示你的CSS,我们可以解决这个问题。 – jfriend00