0

我在网页上有一个 jQueryUI 选项卡控件。每个选项卡都包含一个或多个 Slickgrid 网格。

有时,但没有我能够发现的特定模式,在删除选项卡(因此删除 Slickgrid 的实例)时,我得到:

// slick.grid-2.0.merged.min.js: Microsoft JScript runtime error: Invalid argument
Z[0].styleSheet.cssText=a.join(" ")

然后传播到

// jquery-1.7.1.min.js: Microsoft JScript runtime error: Exception occurred.
a.execScript||function(b){a.eval.call(a,b)})(b)

是什么导致了这个问题,我该如何解决/解决它?

4

1 回答 1

0

根据@Tin 的评论,我确保 SlickGrid 的每个实例都在与它关联的 HTML 元素被 Ajax 结果替换之前被销毁。

杠杆作用

有没有办法从元素中获取 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); 
    }
}
于 2012-06-25T04:32:14.350 回答