重置CSS背景图像
问题描述:
我试图创建一个使用以下JQUERY手风琴式菜单:重置CSS背景图像
function initMenu() {
$('#menu ul').hide();
$('#menu li a').click(
function() {
$(this).next().slideToggle('normal');
$(this).css("background", "url(customnav_selected.png) top right");
}
);
}
$(document).ready(function() {initMenu();});
这个工程到一个点,当我点击它扩展菜单链接和菜单标题背景的变化。
但是,我希望当它再次单击时折叠菜单,它会变回原位。
任何人都可以帮忙吗?
答
取而代之的是:
$(this).css("background", "url(customnav_selected.png) top right");
把那风格融入了CSS类,并使用toggleClass代替css,如:
$(this).toggleClass("selected"); //assuming a class of .selected
所以单击处理变为:
$('#menu li a').click(function() {
$(this).next().slideToggle('normal');
$(this).toggleClass("selected");
});
和款式:
<style>
.selected {background: url(customnav_selected.png) top right}
</style>
答
将background-image设置为none(或初始值)。
我发现直接设置类比特定的html元素更容易,然后添加/删除这些类。
答
将背景样式设置为空字符串应该将其恢复为从样式表继承的样式。这假设默认样式来自样式表,如果不是,您将不得不手动重置样式。
这就是完美 - 如果我只知道Jquery好一点。 – CLiown 2009-08-19 10:15:32
@Dhumperson,如果它满足您的要求,请考虑接受它作为答案。 – krishna 2009-08-19 13:43:38