Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
显示/隐藏不在IE中工作的JavaScript,仅在Firefox中_Javascript_Html_Css - Fatal编程技术网

显示/隐藏不在IE中工作的JavaScript,仅在Firefox中

显示/隐藏不在IE中工作的JavaScript,仅在Firefox中,javascript,html,css,Javascript,Html,Css,这是我在网上找到的显示/隐藏脚本。当您点击“查看菜单”图像时,它应该显示每个部分的隐藏div。出于某种原因,我没有让它在Internet Explorer上显示/扩展,但它在Firefox中运行良好。 函数取消隐藏(divID){ var item=document.getElementById(divID); 如果(项目){ item.className=(item.className='hidden')?'unhidden':'hidden'; } } 这是CSS部分 .hidden

这是我在网上找到的显示/隐藏脚本。当您点击“查看菜单”图像时,它应该显示每个部分的隐藏
div
。出于某种原因,我没有让它在Internet Explorer上显示/扩展,但它在Firefox中运行良好。


函数取消隐藏(divID){
var item=document.getElementById(divID);
如果(项目){
item.className=(item.className='hidden')?'unhidden':'hidden';
}
}
这是CSS部分


.hidden{显示:无;}
.unhidden{display:block;}
这就是部分中的代码

<td valign="top" bgcolor="#51BEB7">
    <a href="javascript:unhide('cookiesmenu');">
        <img src="images/cookies_nav.gif" border="0" usemap="#Map2">
    </a>
    <div id="cookiesmenu" class="hidden">
        <img src="images/cookies_menu.gif">
    </div>
</td>


如果我能得到一点帮助,我会很高兴的。。。或者如果有别的办法。提前谢谢。

您可以使用

而不是


Internet Explorer保留字已用作标识符(函数或变量名)

用另一个变量名更改,并尝试一下

如果您想首先测试这是否是您的问题,下面是使用不同变量名的脚本

function unhide(divID) {
    var MyItem = document.getElementById(divID);
    if (MyItem) {
        MyItem.className = (MyItem.className == 'hidden') ? 'unhidden' : 'hidden';
    }
}


请注意,“内联javascript”出于安全原因倾向于禁用。因此,您应该考虑使用JavaScript库(如jQuery)对代码进行修改。这意味着,即使是像“onclick”这样的javascript事件也将变得过时。

我建议您使用jQuery或其他javascript库来处理这一问题,因为它们都非常努力地维护跨浏览器兼容性。我会尝试直接更改样式属性:item.style.display=“block”;vs item.style.display=“无”;在我看来,这就像你的
javascript:unhide('cookiesmenu')
没有在IE中执行href。我建议你切换到事件处理程序,而不是
javascript:
URL。我不知道这是IE中的一个问题,但是常规事件处理程序在IE中工作得很好,IE中
unhide()
函数中的断点根本没有被命中。似乎奏效了。非常感谢大家,这是我第一次在网上发布一些东西,我被这些快速的回复吓坏了。@user3148129作为帮助:但是,这个函数在IE10中甚至没有调用。请尝试IE10中提供的JSFIDLE,然后回来告诉我发生了什么。另外,如果你能提供控制台错误日志,这将非常有帮助。我不是OP。我只是注意到在OP页面的IE中没有调用unhide函数(其中的断点未命中)。在IE10中,像OP一样使用名为
item
的变量对我来说很好。所以,很明显,OP的页面上还发生了其他事情,这似乎没有改变任何事情。此外,弗里德的回答似乎解决了OP的问题。@jfriend00感谢您的确认。我现在不能自己测试,我会修改答案以获得建议。