我有一个Web应用程序,您可以在其中查看/浏览2D网络图。
当您将鼠标悬停在节点上时,请求将发送到服务器-服务器收集信息并将其发送回客户端-客户端将所有信息保存在JS类TooltipGraphListener中,如下所示:
var w = new scripts.widget.GraphInfo({
baseURL: this._baseURL,
basePath: 'graphs/' + this._graphName,
path: 'nodes/' + nid,
tooltip: true });
var domNode = w.domNode;
dojo.removeClass(domNode, 'graphInfo');
domNode.setAttribute("id", nid);
this._canvas.containerNode.appendChild(domNode);
dojo.addClass(domNode, 'tooltip');
dojo.style(domNode, "opacity", 0.8);
this._toolTips.push(w);
我现在的问题是,如果我在Web应用程序的小部件中生成一个新图形,则此行:
var tooltip = dojo.byId(id);
if (tooltip)...
即使我清除_toolTips(_toolTips = [])或重新初始化整个类(listener = new TooltipGraphListener()),也仍然是正确的。
如何重置/删除所有这些工具提示domnode?
最佳答案
清除工具提示时,还必须从文档中删除其DOM节点(我确定还有更多的dojo方法可以执行此操作,但我没有使用该框架):
for (var i = 0; i < this._tooltips.length; i++) {
this._canvas.containerNode.removeChild(this._tooltips[i].domNode);
}
this._tooltips = [];