|
|
|
| Есть большая таблица, в которой через одну строку текст скрывается или показывается, и таким образом, таблица разворачивается или сворачивается:
<script type="text/javascript">
$(document).ready(function()
{
$('span#show').click(function()
{
$('td.g, td.l1').toggleClass('g l1');
$("span#show").toggle();
});
});
</script>
|
ПОДСКАЖИТЕ, можно ли сделать так, чтобы текст в таблице не улетал вверх или вниз, а разворачивался или сворачивался от первой видимой на экране строки, а не от начала таблицы? | |
|
|
|
|
|
|
|
для: SS
(09.08.2013 в 07:33)
| | Во-первых, если скрываются строки таблицы, то почему вы не скрываете их (TR), а копаетесь в ячейках?
Во-вторых, если известно, что скрывается через одну, а значит четные или нечетные строки, то зачем ковыряться в атрибутах стилей, если jQuery имеет соответствующий селектор?
И в третьих - опишите вразумительно что конкретно требуется, без "летал", "улетает" и прочих авиационных атрибутов. | |
|
|
|
|
|
|
|
для: confirm
(09.08.2013 в 23:49)
| | Спасибо за реплику.
1. В половине случаев надо скрыть столбцы, в половине - строки, поэтому как универсальное решение - через TD. Но это не принципиально, в данном случае можно и через TR, если это упростит решение моей задачи.
2. Спасибо, я раньше этого не знал (не являюсь программистом).
3. Извините, а что тут непонятно? «улетает» - вполне литературный термин... При скрытии, например, нечетных строк происходит смещение всех видимых строк: допустим, я нахожусь в середине таблицы, на строке 30; при скрытии нечетных строк таблица уменьшается наполовину и я оказываюсь на 45-й строке - и наоборот, если нахожусь на 45-й, то при разворачивании скрытых строк первой видимой на экране становится 30-я. В этом и проблема. А надо, чтобы как была 30-я (в первом случае) или 45-я (во втором) - так она и оставалась. Примерно так. | |
|
|
|
|
|
|
|
для: SS
(14.08.2013 в 22:53)
| | JavaScript работает с объектами на странице, то есть ее элементами, а значит обязательно должен уметь работать с коллекциями (наборами, то есть массивами) элементов. jQuery, это JS библиотека, и обязательно будет иметь метод позволяющий выбирать элементы в коллекции произвольно, включая и четные/нечетные.
Хотите использовать jQuery, значит решая что-то, ищите методы в ней, которые позволяют это решить оптимально, вполне возможно, что метод позволит вообще исключить ненужные "метки" у элементов, которые вы им прописываете ради обращения к ним.
Я понимаю, что такое "летает", и какова физика полета. Просто не надо устраивать авиашоу. )
Надо чтобы смещалось что-то, после смещения чего-то, значит и пишите что и как должно происходить. Например, если вас устраивает, чтобы таблица прокручивалась по верхнему своему краю к верхней границе окна при скрытии ее строк, то достаточно использовать js метод scrollIntoView():
document.getElementById(id_таблицы).scrollIntoView();
| А можно анимировать такое смещение таблицы, используя тот же jQuery. Можно следить и за смещением строк таблицы, возвращая их в предыдущее положение. | |
|
|
|