JQuery скрыть () проблема синхронизации со вспышкой - PullRequest
2 голосов
/ 25 июля 2011

Я использую DataTable с плагином TableTool для экспорта CSV и буфера обмена, и он работает отлично ... пока я не решил сделать свою страницу немного модной.Итак, у меня есть несколько данных на странице.При запуске я делаю

$('.dataTables_wrapper').each( function() {
  $(this).hide();
});

, и я буду их использовать при необходимости.Проблема в том, что когда таблица снова видна, кнопки TableTool больше не работают.Если я опущу $ (this) .hide (), все будет работать нормально с эффектом slideToggle ().

Я провел некоторое исследование и вот что я думаю сейчас: - дополнение TableToolиспользует вспышку.Каждая кнопка на самом деле является флэш-объектом.- Когда вызывается $ (this) .hide (), флэш-контент еще не загружен.И как-то, это останавливает его от загрузки.Я не уверен, что это правильное поведение браузера, но оно вполне согласованно в Chrome, FF и Opera.

Может кто-нибудь предложить решение этой проблемы?

Спасибо,

1 Ответ

0 голосов
/ 02 августа 2011

Хитрость в том, чтобы понять, что когда элементы скрыты во время инициализации, они не имеют никакой высоты или ширины - поэтому кнопки Flash, которые используются для взаимодействия файлов и буфера обмена в TableTools, не имеют никакого размера. (т. е. они 0px x 0px), что вы должны подтвердить Firebug / Inspector.

Решение проблемы заключается в API TableTools - в основном вам нужно сделать, чтобы таблица (и, следовательно, кнопки TableTools) снова стала видимой, вам нужно изменить размер кнопок, чтобы была область, когда пользователь можно нажать на кнопку.

Вам нужны две функции: fnResizeRequired и fnResizeButtons

http://datatables.net/extras/tabletools/api#fnResizeRequired http://datatables.net/extras/tabletools/api#fnResizeButtons

Первый проверяет, необходимо ли изменение размера, а второй будет выполнять фактическое изменение размера (вы можете вызывать второе каждый раз, без вреда для этого, кроме нескольких тактов).

И, надеюсь, это будет сделано: -)

Для справки, на этот вопрос также дан ответ на форуме DataTables: я только что ответил на этот вопрос на форуме DataTables, где он также был задан: http://www.datatables.net/forums/discussion/5859.

Allan

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...