重置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> 
+0

这就是完美 - 如果我只知道Jquery好一点。 – CLiown 2009-08-19 10:15:32

+0

@Dhumperson,如果它满足您的要求,请考虑接受它作为答案。 – krishna 2009-08-19 13:43:38

将background-image设置为none(或初始值)。

我发现直接设置类比特定的html元素更容易,然后添加/删除这些类。

将背景样式设置为空字符串应该将其恢复为从样式表继承的样式。这假设默认样式来自样式表,如果不是,您将不得不手动重置样式。