Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / перехват событий / 14 сообщений из 14, страница 1 из 1
25.04.2008, 14:04
    #35279918
rutz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перехват событий
здравствуйте.
в input есть какой то текст. кусок этого текста выделен. при нажатии на стрелку вверх и вниз вызываются соответсвующие функции. при этом выделение с текста убирается.
а теперь внимание вопрос: как сделать так что бы выделение c текста не убиралось?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
<html>
<head>
<style type="text/css">
#main{width:200px;height:200px;border:1p dashed black;overflow-y:auto}
.sel{background-color:gray;color:red;height:20px;cursor:hand}
.unsel{background-color:white;color:black;height:20px;cursor:hand}
</style>
<script language="JavaScript" type="text/JavaScript">
var inx= 0 ;
function getObj(id){return self.document.getElementById(id);}
function downspis(){
	if(!getObj(inx+ 1 )) return;
	if(getObj(inx)) getObj(inx).className="unsel";
	getObj(inx+ 1 ).className="sel";
		getObj(inx+ 1 ).scrollIntoView(false);
	inx++;
	return;
}
function upspis(){
	if(!getObj(inx- 1 )) return;
	if(getObj(inx)) getObj(inx).className="unsel";
	getObj(inx- 1 ).className="sel";
		getObj(inx- 1 ).scrollIntoView();
	inx--;
	return;
}
function run(event){
	if(event.keyCode== 13 ) {
		if(!getObj(inx)) return;
		getObj("txt").value=getObj(inx).innerHTML;
	}
	if(event.keyCode== 40 ) downspis();
	if(event.keyCode== 38 ) upspis();
	return false;
}
</script>
</head>
<body bgcolor="#ffffff">
<input type="text" id="txt"  onKeyDown="run(event);"/>
<div id="main">
	<div id="1" class="unsel"> Див номер  1 </div>
	<div id="2" class="unsel"> Див номер  2 </div>
           ......
	<div id="33" class="unsel"> Див номер  33 </div>
	<div id="34" class="unsel"> Див номер  34 </div>
</div>
</body>
</html>
приветствуются все возможные ответы;-)
...
Рейтинг: 0 / 0
25.04.2008, 14:09
    #35279933
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перехват событий
rutzкак сделать так что бы выделение c текста не убиралось?
Это "стандартная" реакция "полей для ввода" снимать выделение по нажатию кнопок "навигации"...

Как вариант вызывать нужное "действо" по другим событиям...
...
Рейтинг: 0 / 0
25.04.2008, 14:11
    #35279943
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перехват событий
rutz , а какова цель? Вчем состоит задача всей страницы?
----------
Cache for Windows (Intel) 2007.1 (Build 369) Fri Jun 15 2007 15:25:42 EDT
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
25.04.2008, 14:13
    #35279950
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перехват событий
krvsaЭто "стандартная" реакция "полей для ввода" снимать выделение по нажатию кнопок "навигации"...
Неправда. Выделение снимается только в ИЕ. Но! В ИЕ есть вожможность оперировать объектом selection!
...
Рейтинг: 0 / 0
25.04.2008, 14:15
    #35279960
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перехват событий
ShSergeНеправда.
Я мало знакм с другими браузерами... Т.ч. спорить не стану.
...
Рейтинг: 0 / 0
25.04.2008, 14:17
    #35279970
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перехват событий
krvsaЯ мало знакм с другими браузерами...
Только что скопипастил код и проверил в фирефоксе и опере.
...
Рейтинг: 0 / 0
25.04.2008, 14:28
    #35280013
rutz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перехват событий
krvsa rutz , а какова цель? Вчем состоит задача всей страницы?
цель: див main будет заполняться данными с сервера по мере ввода пользователем строки в поле ввода и как вариант будет придлагаться запись, начало которой соответсвует тексту введеному пользователем а остальной кусок записи(если он есть) будет выделен. (например: ива нов ). в этот момент позволить пользователю перемещаться в спеске вверх и вниз. вот здесь как раз выделение слетает.
...
Рейтинг: 0 / 0
25.04.2008, 14:31
    #35280026
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перехват событий
Да проверяй какая клавиша нажата, если стрелки - ретурн фалсе и всех делов.
...
Рейтинг: 0 / 0
25.04.2008, 14:35
    #35280038
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перехват событий
ShSergeТолько что скопипастил код и проверил в фирефоксе и опере.
Т.е. там не снимается? Буду иметь ввиду...
...
Рейтинг: 0 / 0
25.04.2008, 14:39
    #35280055
rutz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перехват событий
ShSergeДа проверяй какая клавиша нажата, если стрелки - ретурн фалсе и всех делов.
вот именно что если стрелка я вызываю свою функцию
Код: plaintext
1.
2.
           if(event.keyCode== 40 ) downspis();
	if(event.keyCode== 38 ) upspis();
	return false;
а после этого выделение снимается
...
Рейтинг: 0 / 0
25.04.2008, 14:42
    #35280068
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перехват событий
krvsaТ.е. там не снимается?
Там не снимается. В эксплорере - тоже, если ретурн фальсе. Пускай топегстартер код подправит, чтобы функция нужный ретурн давала. И свою функцию вызывает типа onkeydown="return run(event);"
...
Рейтинг: 0 / 0
25.04.2008, 14:45
    #35280087
rutz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перехват событий
ShSergeтопегстартер
чевой?
...
Рейтинг: 0 / 0
25.04.2008, 14:57
    #35280129
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перехват событий
rutzчевой?
Вот так напиши:
Код: plaintext
onKeyDown="run(event); if((event.keyCode==40)||(event.keyCode==38)) return false; return true;"
...
Рейтинг: 0 / 0
25.04.2008, 15:18
    #35280220
rutz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перехват событий
спасибо спасибо. разабрался уже. все работает как надо:). поблагодарить не успел интернет вырубался:(
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / перехват событий / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]