【问题标题】:Invalid Argument Error with SlickGridSlickGrid 的无效参数错误
【发布时间】:2012-04-12 17:56:22
【问题描述】:

我在网页上有一个 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)

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

【问题讨论】:

  • 只有在创建新的 SlickGrid 实例时才会调用此代码。
  • 另外,请确保在调用 grid.destroy() 之前销毁 SlickGrid 实例。

标签: slickgrid


【解决方案1】:

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

利用

Is there a way to get an instance of SlickGrid from an element

我最终得到了这样的代码:

初始化 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); 
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-17
    • 2016-01-05
    • 2020-10-16
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多