Javascript jquery accordion列中的Slickgrid未正确显示

Javascript jquery accordion列中的Slickgrid未正确显示,javascript,jquery,slickgrid,Javascript,Jquery,Slickgrid,我在jquery手风琴中使用slickgrid,每当页面刷新和手风琴展开时,网格中的列都会无序并被破坏。我试着用 grid.resizeCanvas(); 在我的手风琴里面没有用 这是我的密码 var grid = (grid1, grid2, grid3); $('#accordion').accordion({ collapsible: true, beforeActivate: function (event, ui

我在jquery手风琴中使用slickgrid,每当页面刷新和手风琴展开时,网格中的列都会无序并被破坏。我试着用

 grid.resizeCanvas();
在我的手风琴里面没有用

这是我的密码

  var grid = (grid1, grid2, grid3);
        $('#accordion').accordion({
            collapsible: true,

            beforeActivate: function (event, ui) {
                grid.resizeCanvas();
                // The accordion believes a panel is being opened
                if (ui.newHeader[0]) {
                    var currHeader = ui.newHeader;
                    var currContent = currHeader.next('.ui-accordion-content');
                    // The accordion believes a panel is being closed
                } else {
                    var currHeader = ui.oldHeader;
                    var currContent = currHeader.next('.ui-accordion-content');
                }



                // Since we've changed the default behavior, this detects the actual status
                var isPanelSelected = currHeader.attr('aria-selected') == 'true';

                // Toggle the panel's header
                currHeader.toggleClass('ui-corner-all', isPanelSelected).toggleClass('accordion-header-active ui-state-active ui-corner-top', !isPanelSelected).attr('aria-selected', ((!isPanelSelected).toString()));

                // Toggle the panel's icon
                currHeader.children('.ui-icon').toggleClass('ui-icon-triangle-1-e', isPanelSelected).toggleClass('ui-icon-triangle-1-s', !isPanelSelected);

                // Toggle the panel's content

                currContent.toggleClass('accordion-content-active', !isPanelSelected)
                if (isPanelSelected) { currContent.slideUp(); } else { currContent.slideDown(); }

                return false; // Cancels the default action

            }
        });
更新 我试过使用

 var grid = [grid1, grid2, grid3];
   $("#accordion").accordion({
            afterActivate: function (event, ui) {
                grid[0].resizeCanvas();
            }
        });
不幸的是,这也没有起作用。

看起来“resizeCanvas()”方法没有影响列。 我不喜欢这样做,但尝试再次循环浏览列并调整它们的大小,然后让我知道这是否适用于您: 范例

你不必像我一样循环浏览专栏。您知道列的名称和大小,因此可以执行此操作

cols["Policy Type"].width = 120;

等等。。让我知道这是否有帮助

我使用了
window.location.reload()。我曾尝试在递归方法调用中执行此操作,而不是重新加载页面,并遇到了您描述的问题


如果您可以刷新页面而不是执行递归调用,那么这将解决问题。

尝试将
网格
设置为数组<代码>变量网格=[grid1,grid2,grid3]然后像网格[0]一样访问它们尝试过,但目前没有任何成功。关闭手风琴时,所有列在关闭动画完成之前重新组织。手风琴上是否有
afterActivate
功能?通常,容器div需要是可见的,并且具有网格占用的高度。My现在包含jQuery Accordion问题的修复程序和一个示例页面(例如jQuery Accordion.html)。看见我强烈怀疑你在这方面还有其他问题。另请看:好主意,但没有产生结果。
cols["Policy Type"].width = 120;