Javascript 在IE11和Edge中单击向DOM元素添加类时出现问题

Javascript 在IE11和Edge中单击向DOM元素添加类时出现问题,javascript,html,css,Javascript,Html,Css,所以我目前正在ASP.NETMVC中进行这个项目,我一直在做这个项目,并且只在Chrome上测试它(这恰好是我的默认浏览器) 当我把它发布到测试服务器上时,有很多“不完善之处”,但大多数都已经分类了 我现在有一个按钮面板的问题,它可以扩展以显示一些信息。它在Chrome中工作得很好,奇怪的是它有时在IE11和Edge中的某些元素上工作。此外,外观也有所不同: IE11和Edge 铬 铬开 正如您在IE&Edge图片中所看到的,它已经显示了保存该滚动条的div之前的滚动条。第二张图片是我希望它

所以我目前正在ASP.NETMVC中进行这个项目,我一直在做这个项目,并且只在Chrome上测试它(这恰好是我的默认浏览器)

当我把它发布到测试服务器上时,有很多“不完善之处”,但大多数都已经分类了

我现在有一个按钮面板的问题,它可以扩展以显示一些信息。它在Chrome中工作得很好,奇怪的是它有时在IE11和Edge中的某些元素上工作。此外,外观也有所不同:

IE11和Edge 铬

铬开

正如您在IE&Edge图片中所看到的,它已经显示了保存该滚动条的div之前的滚动条。第二张图片是我希望它在单击之前在IE/Edge中的外观,第三张图片是单击之后的外观。正如我说的,它在chrome中工作

//触发单击的javascript:
$(“body”)。在('domsubertreemodified',函数(){
var acc=document.getElementsByClassName(“accordion”);
var i;
对于(i=0;i
/*设置用于打开和关闭手风琴面板的按钮的样式*/
.手风琴{
背景色:#eee;
颜色:#444;
光标:指针;
填充:18px;
宽度:100%;
文本对齐:左对齐;
边界:无;
大纲:无;
过渡:0.4s;
-webkit转换:0.4s;
-moz跃迁:0.4s;
-o过渡:0.4s;
}
/*如果单击按钮,则为其添加背景色(添加.active
使用JS)初始化),并在鼠标移动到其上时(悬停)*/
.活动,.手风琴:悬停{
背景色:#ccc;
}
/*设计手风琴面板的样式。注意:默认情况下隐藏*/
.小组{
填充:0 0px;
背景色:白色;
最大高度:0;
溢出:滚动;
过渡段:最大高度0.2s放松;
-webkit过渡:最大高度为0.2秒;
-moz过渡:最大高度0.2s放松;
-o型过渡:最大高度为0.2s;
溢出-y:隐藏
}
.手风琴{
内容:'\02795';/*表示加号(+)的Unicode字符*/
字体大小:13px;
颜色:#777;
浮动:对;
左边距:5px;
边缘顶部:7px;
}
.活动:之后{
内容:“\2796”/*表示减号(-)的Unicode字符*/
}

显示数据
国际号码
创建
改变
最低电池电量
@if(sigfoxData!=null)
{
@sigfoxData.InternalNumber
@sigfoxData.Created
@sigfoxData。已更改
@sigfoxData.MinimumBatteryLevel
}

正如JavaScript所暗示的那样,将动态加载其他HTML。在这种情况下,您应该在祖先元素上使用JQuery的事件委派
.on('event','selector',handlerFunc)
,而不是观察DOM

此外,最好使用
DOMContentLoaded
事件,即JQuery速记
$(function(){})

还要注意,您使用的是多个相同的ID,但是HTML规范规定每个文档的ID必须是唯一的。我把它改成了

//触发单击的javascript:
$(函数()
{
$('body')。在('click','button.accordion',函数(){
this.classList.toggle(“活动”);
var panel=this.nextElementSibling;
if(panel.style.maxHeight)
{
panel.style.maxHeight=null;
}否则
{
panel.style.maxHeight=panel.scrollHeight+“px”;
}
});
});
/*设置用于打开和关闭手风琴面板的按钮的样式*/
.手风琴{
背景色:#eee;
颜色:#444;
光标:指针;
填充:18px;
宽度:100%;
文本对齐:左对齐;
边界:无;
大纲:无;
过渡:0.4s;
-webkit转换:0.4s;
-moz跃迁:0.4s;
-o过渡:0.4s;
}
/*如果单击按钮,则为其添加背景色(添加.active
使用JS)初始化),并在鼠标移动到其上时(悬停)*/
.活动,.手风琴:悬停{
背景色:#ccc;
}
/*设计手风琴面板的样式。注意:默认情况下隐藏*/
.小组{
填充:0 0px;
背景色:白色;
最大高度:0;
溢出:滚动;
过渡段:最大高度0.2s放松;
-webkit过渡:最大高度为0.2秒;
-moz过渡:最大高度0.2s放松;
-o型过渡:最大高度为0.2s;
溢出-y:隐藏
}
.手风琴{
内容:'\02795';/*表示加号(+)的Unicode字符*/
字体大小:13px;
颜色:#777;
浮动:对;
左边距:5px;
边缘顶部:7px;
}
.活动:之后{
内容:“\2796”/*表示减号(-)的Unicode字符*/
}

显示数据
国际号码
创建
改变
最低电池电量
示例内部编号
创建的示例
例子改变了
示例MinimumPatteryLevel

我已将您的代码重新格式化为可运行的代码段,但由于某些原因,“显示数据”不会在沙箱中打开,即使在Chromium/Linux中也不会打开。你可以检查一下是否有东西丢失了。最初的来源可能是,这似乎确实是我使用的例子。及