我的地图应用程序页面有一个 div,专门用于包含浮动在地图上方的小部件,例如帮助窗口或搜索结果列表。在任何给定时间都显示单个小部件或不显示任何内容。每个小部件都有一个按钮,单击它可以打开该小部件(替换 div 中的内容)或关闭它(如果它是当前打开的小部件)。
这是处理这些按钮点击的函数之一(前面提到的 div 是widgets.main
):
_openSearch: function() {
if (widgets._activeWidget == widgets._searchWidget){
domConstruct.empty(widgets.main);
widgets._activeWidget = null;
} else {
widgets._searchWidget.show();
widgets._activeWidget = widgets._searchWidget;
}
},
这是被调用的函数:
show: function() {
domConstruct.empty(this.rootDiv);
this.rootDiv.appendChild(this.widgetDiv);
},
widget.widgetDiv
是具有小部件实际内容的 div 元素。我的意图是生成一次内容,然后widgetDiv
在小部件关闭时将其存储。这在 IE 和 Chrome 中按预期工作,但 IE(尤其是 IE8)在调用widgetDiv
时会删除内部的所有内容domConstruct.empty()
。
如何在 IE 中获得所需的行为?此外,在标准方面,哪种行为是“正确的”?