2011-10-28 16 views
0

Мне нужно реализовать запрошенное событие onRendered(), которое обеспечило бы отображение всей сетки до того, как я что-то сделаю, что должно быть .hide(). Мой шлюз должен иметь кнопку .hide() и .show(), прикрепленную к div, в которой находится сетка, со статусом по умолчанию, скрытым. Проблема в том, что в момент, когда сценарий выполняет начальный .hide(), сетка еще не полностью создана скриптом grid.js. Я бы предпочел не делать петлю задержки. Скорее всего, есть обратный вызов.onRendered callback

Любая помощь будет оценена

Благодаря Пэт

+0

Возможный дубликат http://stackoverflow.com/questions/6224661/do-action-after-render-method-is-completed?answertab=active#tab-top – magiconair

ответ

2

Это должно работать без обратного вызова. У меня есть приложение SlickGrid, где я показываю и скрываю сетку в ответ на события пользовательского интерфейса. Сетка существует, как только она создается (с new Slick.Grid), и ее можно использовать с помощью методов .hide() и .show().

я нашел один улов, хотя ...

Если вы создаете div тега display: none (так он изначально скрыт) столбцы сетки не инициализируются правильно. Чтобы обойти это, я создаю тег div с visibility: hidden и удаляю этот стиль перед использованием методов .hide() и .show().

Мой код выглядит примерно так:

<div id="mygrid" style="visibility: hidden"></div> 

    $grid = $("#mygrid") 

    grid = new Slick.Grid($grid, gridData, gridColumns, gridOptions); 

    // Hide grid by default, remembering to remove the visibility style 
    $grid.hide(); 
    $grid.css("visibility", "visible"); 

    // You can now show and hide the grid using normal jQuery methods 
    $grid.show(); 
    $grid.hide(); 

Надеется, что это помогает.

+0

Спасибо, это помогло много. – cube

+0

Хороший взлом. Он работал очень хорошо. Благодаря! – DRaehal

Смежные вопросы