我有一个网页上的jQueryUI的标签控制。 每个标签包含一个或多个Slickgrid网格。
有时,但我已经能够发现,去除标签(因此除去Slickgrid的情况)时,没有特定的模式,我得到:
// slick.grid-2.0.merged.min.js: Microsoft JScript runtime error: Invalid argument
Z[0].styleSheet.cssText=a.join(" ")
然后propogates到
// jquery-1.7.1.min.js: Microsoft JScript runtime error: Exception occurred.
a.execScript||function(b){a.eval.call(a,b)})(b)
是什么造成这个问题,我怎么能解决/解决?
继从@Tin的评论,我保证SlickGrid的每个实例是之前它是由一个Ajax结果被替换相关的HTML元素破坏。
利用
有没有办法从一个元素得到SlickGrid的一个实例
我结束了这样的代码:
初始化SlickGrid实例:
grid = new Slick.Grid("#myGridDiv", myDataView, myColumns, myOptions);
$('#myGridDiv').data('slickgrid', grid);
一般清理功能:
function cleanupSlickGrid() {
//@* Cleanup slickgrid instances. See: https://stackoverflow.com/questions/10129069/invalid-argument-error-with-slickgrid *@
var grids = $('.slick'); //@* I add the class 'slick' to each grid *@
jQuery.each(grids, function(i, val) {
var grid = $(this).data('slickgrid');
grid.destroy();
});
}
这样使用一般的清理功能:
$.ajax(
{
url: removeUrl,
type: "POST",
success: function (data)
{
cleanupSlickGrid();
$('#myDivId').html(data);
}
}