Метод jQuery show () работает с таблицами в IE? - PullRequest
0 голосов
/ 02 октября 2009

У меня есть таблица с некоторыми скрытыми строками (display:none), и я использую jQuery, чтобы показать их. Я узнал из Firebug, что jQuery обнаруживает, что это строки таблицы, и устанавливает для них значение display:table-row, а не блок.

Тем не менее, IE6 (и я думаю, что 7 тоже) не поддерживает table-row, поэтому jQuery делает что-то другое для этих браузеров?

Другая проблема, по-видимому, заключается в использовании любой функции, кроме show(), которая приводит к 100% -ной загрузке ЦП в Linux для Firefox и Chrome, и они перестают отвечать, пока я не получу предупреждение о медленном сценарии. В Opera строки появляются очень медленно, один за другим. Есть ли способ сделать так, чтобы строки выглядели гладко так же, как обычные <div>?

Ответы [ 2 ]

2 голосов
/ 03 октября 2009

К сожалению, это невозможно. Причина в том, что строка таблицы не имеет макета. Это строго элемент структуры, а не элемент отображения. Табличные данные не являются ни элементом отображения, ни элементом структуры. Однако вы можете попробовать это. Это скроет содержимое табличных данных, фактически свернув строку таблицы.

// show
$("table tr.show").find("td *").show();
// hide
$("table tr.hide").find("td *").hide();
0 голосов
/ 13 апреля 2011

Это решение сработало для меня (при условии, что в TR установлено «display: none»):

$ ( "# table_row") CSS ( "Дисплей", "таблицы строк");.

если ($ ( "# table_row"). CSS ( "Дисплей") == "нет")

$ ( "# table_row") CSS ( "дисплей", "блок");.

IE не распознает атрибут строки таблицы, поэтому вместо изменения отображаемого значения он сохраняет то значение, которое у него было ранее (в данном случае «нет»). Поэтому все, что вам нужно сделать, это проверить, изменилось ли отображение на строку таблицы (FF & Chrome) или оно сохранило свое предыдущее значение (IE).

Надеюсь, это помогло.

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