Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перемещение в таблице при нажатии на стрелки 
V
    Опции темы
Китти
Дата 13.2.2007, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 16.4.2006

Репутация: нет
Всего: нет



Есть таблица, в которой первая строка выделена другим цветом. Надо сделать так, что бы при нажатии на клавиатуре стрелочки вниз выделение перемещалось на строку вниз, а при нажатии стрелки вверх, соответственно, на одну строчку выше. Пыталась отловить событие onkeydown как строки, так и таблицы, но не могу получить предыдущую или следующую строку. Помогите, пожалуйста! Уже не первый день бьюсь.   smile 
PM MAIL   Вверх
12345c
Дата 13.2.2007, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Код
<table cellspacing=2 style="width:300px;border:1px solid">
<tr id=tr1 style="background-color:#f4f4f4"><td>1</td></tr>
<tr id=tr2><td>2</td></tr>
<tr id=tr3><td>3</td></tr>
</table>
<script>selStr=1;
document.onkeydown=function(ev){
  ev=ev||event;
  if(ev.keyCode==38&&selStr<=1)return;
  if(ev.keyCode==40&&selStr>=3)return;
  if(ev.keyCode==38){
    document.getElementById('tr'+selStr).style.backgroundColor='transparent';
    selStr--;
    document.getElementById('tr'+selStr).style.backgroundColor='#f4f4f4';
  }
  if(ev.keyCode==40){
    document.getElementById('tr'+selStr).style.backgroundColor='transparent';
    selStr++;
    document.getElementById('tr'+selStr).style.backgroundColor='#f4f4f4';
  }  
}
</script>
А ещё лучше сделать это через классы, чтобы из скрипта убрать привязку к цвету.
PM WWW   Вверх
Китти
Дата 13.2.2007, 22:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 16.4.2006

Репутация: нет
Всего: нет



Огромное спасибо за помощь!!!
PM MAIL   Вверх
pythonwin
Дата 14.2.2007, 07:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 1
Всего: 36



Цитата(Китти @  14.2.2007,  01:55 Найти цитируемый пост)
Огромное спасибо за помощь!!! 


12345c, ++1 smile

PM WWW GTalk Jabber   Вверх
Sanchezzz
  Дата 1.8.2008, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 3
Всего: 60



а как можно сделать это без ID элементов ?
а то если страница большая большой JS получается

а то под файловый менеджер не прикрутить...

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  myCMS_Filemenager.JPG 42,01 Kb


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
bars80080
Дата 1.8.2008, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 15
Всего: 315



Код

<table id="tab1" cellspacing=2 style="width:300px;border:1px solid">
<tr style="background-color:#f4f4f4"><td>1</td></tr>
<tr><td>2</td></tr>
<tr><td>3</td></tr>
</table>
<script>
var tid = document.getElementById('tab1').getElementsByTagName('tr');
var tln = tid.length;
var selStr = 1;

document.onkeydown=function(ev) {
    ev=ev||event;
    if(ev.keyCode == 38 && selStr <= 1) return;
    if(ev.keyCode == 40 && selStr >= 3) return;
    if(ev.keyCode == 38) {
        if(selStr < 0) return;
        tid[selStr - 1].style.backgroundColor = 'transparent';
        selStr--;
        tid[selStr - 1].style.backgroundColor = '#f4f4f4'; }
    if(ev.keyCode == 40) {
        if(selStr >= tln) return;
        tid[selStr - 1].style.backgroundColor = 'transparent';
        selStr++;
        tid[selStr - 1].style.backgroundColor = '#f4f4f4'; }}
</script>

PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0700 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.