每个人。我搜索了这个网站和许多其他网站,以了解为什么 toggleClass 函数在我的 Jquery 代码中不起作用,虽然我找到了几种不同的解释,但它们与我想要的效果不符。
我对 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 而不是将新类附加到#BUTTON。我更改了代码,现在一切似乎都正常了。
再次感谢大家的快速回复!