【发布时间】:2013-04-07 01:44:11
【问题描述】:
以清除所有事件处理程序且不会导致内存泄漏的方式销毁 jQuery 浮点图的正确方法是什么?
flot 似乎留下了一些僵尸(又名分离的 Dom 树)
【问题讨论】:
-
$.plot('#yourFlotDiv', {}, {});在某处阅读。不记得具体在哪里。
以清除所有事件处理程序且不会导致内存泄漏的方式销毁 jQuery 浮点图的正确方法是什么?
flot 似乎留下了一些僵尸(又名分离的 Dom 树)
【问题讨论】:
$.plot('#yourFlotDiv', {}, {}); 在某处阅读。不记得具体在哪里。
如果您阅读 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" );
更多信息请查看this。
【讨论】: