2

我想在 div 展开时显示 box-shadow 。我正在添加一个在扩展 div 案例中具有 box-shadow 类的类。它在所有浏览器中都运行良好。我面临的问题是 IE 8 显示错误:-'attr(...)' 为空或不是对象。

我需要你的帮助来解决这个问题。请建议。

这就是我所做的:

<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>

请帮忙..!谢谢

4

2 回答 2

1

你正在使用 jQuery!使用这里为您准备的方法:

var helpBox = $(".needHelpBox");
if(helpBox.hasClass('shadow')){
    helpBox.removeClass('shadow');
} else {
    helpBox.addClass('shadow');
}

Bergi 的解决方案更简单,因为它利用了该toggleClass方法。

您面临的问题也可能在选择器中 $(".needHelpBox") 您确定 html 元素具有正确的类 (needHelpBox) 属性吗?您使用的是什么版本的 jQuery?

于 2013-03-08T08:44:52.290 回答
0

看来您想使用该toggleClass()方法(如果您使用 jQuery):

$(".needHelpBox").toggleClass("shadow");

toggleClassName方法(您使用 Prototype,在没有 时似乎更有可能attr):

$(".needHelpBox").toggleClassName("shadow");
于 2013-03-08T15:01:09.650 回答