以清除所有事件处理程序而不导致内存泄漏的方式销毁 jQuery 浮点图的正确方法是什么?
似乎 flot 留下了一些僵尸(又名分离的 Dom 树)
如果您阅读 API 文档,有一个关闭方法可以为您清理
shutdown()
Cleans up any event handlers Flot has currently registered. This
is used internally.
例如。
var plot = $.plot($("#yourDiv"), options)
plot.shutdown()
对于以后来这里的人来说,现在有一个destroy
调用shutdown并移除canvas元素的函数。由于某种原因,它在 API 中没有记录,但在代码中可用:
var flot = $("#FlotDiv").data('plot')
if (flot) // If it's destroyed, then data('plot') will be undefined
flot.destroy();
如果要删除事件处理程序,请尝试jquery off
方法。
用于清除浮动图。你可以清空div。
$('#yourFlotDiv').empty();
删除浮动图
var placeholder = $("#FlotDiv");
placeholder.unbind(); //Remove a previously-attached event handler from the elements.
placeholder.empty();
此外,如果您希望取消绑定特定事件,这是要走的路:
$( "#foo").unbind( "click" );
有关更多信息,请查看此内容。