Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Получение соседних ячеек таблицы


Автор: prototype 11.10.2011, 23:34
Здравствуйте,

Делаю навигацию стрелками по таблице (как в MS Excel), пытаюсь решить проблему получения соседних ячеек по отношению к активной. В сложных таблицах соседи не всегда очевидны из-за особенностей постороения в HTML, вот пример:
http://www.radikal.ru
К примеру, ячейка сверху от отмечнной по координатам находится на два ряда выше и на две клетки левее.

Приходит в голову просчитывать отдельный массив адресов, но наверняка будут решения получше.
Как бы вы решили подобную задачу? Не прошу готовый код, интересует именно способ.

Автор: magelan 12.10.2011, 11:06
по любому бежать по таблице, составлять матрицу
задачи:
1. размерность x-y - сходу кажется простой задачей, но могут быть грабли
2. каждому элементу матрицы вешаем ссылку на физичискую ячейку таблицы, чтобы не париться (возможно еще координаты на первую ячейку).
3. пишем хитрую функцию, которая вычисляет клацнутую ячейку, т.е. делает соответствие таблицы матрице.

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

Автор: prototype 12.10.2011, 22:00
magelan, спасибо! Так и сделаю, буду составляь матрицу, в которой несуществующие "заспаненные" ячейки будут ссылаться на первую.

Цитата(magelan @  12.10.2011,  11:06 Найти цитируемый пост)
пишем хитрую функцию, которая вычисляет клацнутую ячейку, т.е. делает соответствие таблицы матрице.

Думаю, лучше при обходе каждой ячейке заодно прописать в атрибуты x,y координаты. Таблицу обходить-то все-равно придется.

Цитата(magelan @  12.10.2011,  11:06 Найти цитируемый пост)
по любому из четырех(восьми) направлений

Четвертое измерение? smile

Автор: magelan 12.10.2011, 23:22
некоторые устройства ввода позволяют делать лево-верх, право-низ, либо можно нумпад обработать, тогда из ячейки есть 8 вариантов перемещения.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)