我希望在扩展div时显示box-shadow。我在扩展div case中添加了一个具有box-shadow类的类。 它在所有浏览器中都运行良好。 我面临的问题是IE 8显示错误: - 'attr(...)'为null或不是对象。
我需要你的帮助来解决这个问题。请建议。
这就是我所做的:
<script type="text/javascript">
animatedcollapse.addDiv('navDrop', 'fade=0,speed=100,')
animatedcollapse.addDiv('needHelp', 'fade=10,speed=300,')
animatedcollapse.ontoggle=function($, divobj, state){ //fires each time a DIV is expanded/contracted
//$: Access to jQuery
//divobj: DOM reference to DIV being expanded/ collapsed. Use "divobj.id" to get its ID
//state: "block" or "none", depending on state
jkmegamenu.render($);
if($(".needHelpBox").attr('class').indexOf("shadow") > 0)
{
$(".needHelpBox").attr('class',$(".needHelpBox").attr('class').replace("shadow",""));
}
else
{
$(".needHelpBox").addClass('shadow');
}
}
animatedcollapse.init()
</script>
请帮忙..! 感谢
答案 0 :(得分:1)
你正在使用jQuery!使用此处的方法:
var helpBox = $(".needHelpBox");
if(helpBox.hasClass('shadow')){
helpBox.removeClass('shadow');
} else {
helpBox.addClass('shadow');
}
Bergi的解决方案更简单,因为它利用了toggleClass
方法。
您遇到的问题也可能在选择器$(".needHelpBox")
内
你确定html元素有正确的类(needHelpBox)属性吗?
您使用的是什么版本的jQuery?
答案 1 :(得分:0)
似乎你想使用toggleClass()
method(如果你使用jQuery):
$(".needHelpBox").toggleClass("shadow");
或toggleClassName
method(你使用Prototype,当没有attr
时似乎更有可能):
$(".needHelpBox").toggleClassName("shadow");