Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   [решено] как пофиксить отображение таблицы со 2 клика (http://forum.oszone.net/showthread.php?t=341419)

God-of-Chaos 17-07-2019 06:35 2880174

как пофиксить отображение таблицы со 2 клика
 
К сожалению не силен в 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 2880213

Нужно добавить для скрываемой таблицы класс table-open
У вас проверка идет по нему.
Цитата:

Цитата God-of-Chaos
Код:

if(thisTable.hasClass('table-open'))
»

Если есть класс, значит таблица при клике скрывается, если нет - показывается.

Sham 17-07-2019 13:50 2880225

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

ProCoder 18-07-2019 17:08 2880463

Цитата:

Цитата Sham
Логичнее было бы if (thisTable.css('display') == 'none') »

Ну или скрытие сделать на классах.


Время: 00:18.

Время: 00:18.
© OSzone.net 2001-