繁体   English   中英

JS IE8、7、9错误'attr(..)'为null或不是对象

[英]JS IE8, 7, 9 Error 'attr(..)' is null or not an object

我想在div扩展时显示框阴影。 我在扩展div情况下添加了一个具有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>

请帮忙..! 谢谢

您正在使用jQuery! 使用适合您的方法:

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

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

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

似乎您想使用toggleClass()方法 (如果使用jQuery):

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

toggleClassName方法 (您使用Prototype,当没有attr时,它看起来更可能):

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM