我有一个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 = [];

10-08 01:08