Войти

Показать полную графическую версию : [решено] как пофиксить отображение таблицы со 2 клика


God-of-Chaos
17-07-2019, 06:35
К сожалению не силен в JS от слова вообще, но есть необходимость скрывать и отображать дополнительные строки в таблице
есть кусок кода, который скрывает и показывает строки, НО,
при загрузке страницы, раскрытие списков происходит только со второго клика по строке, после этого все срабатывает с первого раза.
обновляешь страницу - раскрытие работает со 2 клика и затем все работает с первого раза, до последующего обновления страницы
как решить данную беду? чтобы с первого клика и открывал и закрывал строки.


$(function()
{
var headerLevel = $('.header-level'),
subLevel = $('.sub-level');

$('.sub-level table').hide();



headerLevel.click(function()
{
var thisTable = $(this).next('.sub-level').children('td').children('table');

if(thisTable.hasClass('table-open'))
{
thisTable.removeClass('table-open').show();
}
else
{
thisTable.addClass('table-open').hide();
}
}
);
}
);

ProCoder
17-07-2019, 12:50
Нужно добавить для скрываемой таблицы класс table-open
У вас проверка идет по нему.
if(thisTable.hasClass('table-open')) »
Если есть класс, значит таблица при клике скрывается, если нет - показывается.

Sham
17-07-2019, 13:50
непонятно, что за table-open. Логичнее было бы if (thisTable.css('display') == 'none')

ProCoder
18-07-2019, 17:08
Логичнее было бы if (thisTable.css('display') == 'none') »
Ну или скрытие сделать на классах.




© OSzone.net 2001-2012