Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (HTML) Вызов события при выходе курсора мыши за пределы области / 8 сообщений из 8, страница 1 из 1
06.02.2006, 16:26:22
    #33526410
AlexG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(HTML) Вызов события при выходе курсора мыши за пределы области
Есть таблица с ячейками. К каждой ячейке привязано событие на вход мыши и на выход. Я хочу чтобы при выходе мыши за пределы всей таблицы вызывалось еще одно событие. Проблема в том, что если привязать функцию на событие таблицы onmouseout, то эта функций вызывается даже при перемещении мыши из одной ячейки в другую. Как добиться желаемого?
...
Рейтинг: 0 / 0
06.02.2006, 17:18:27
    #33526585
4m@t!c
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(HTML) Вызов события при выходе курсора мыши за пределы области
Попробуйте проверять, откуда пришла мыша. Если ячейки той же таблицы, то не заглушите событие.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
07.02.2006, 11:02:47
    #33527881
AlexG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(HTML) Вызов события при выходе курсора мыши за пределы области
В общем, пока сделал так: окаймил со всех сторон нужную область дополнительными ячейками и этим дополнительным объектам назначил событие onmouseout. В общем-то, работает почти так, как нужно =) А с твоим советом пока не очень разобрался. Т.е. я могу узнать откуда пришло событие. Но почему-то оно иногда приходит по нескольку раз от таблицы... Я проверял свойство target/srcElement. Так что пока я еще разбираюсь, но идея понятна, спасибо.
...
Рейтинг: 0 / 0
10.02.2006, 13:12:12
    #33536861
TroT
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(HTML) Вызов события при выходе курсора мыши за пределы области
видимо, ваще решение единственое возможное

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

Код: 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.
<html>
<head>
<style>
table {border-collapse: collapse; }
td { padding:  0  1ex; border: 1px solid Silver; }
#lg { float: left; width: 7em; height: 15em; overflow: auto; padding: 1ex; padding-bottom: 1em; border: 1px solid Silver; }
</style>
</head>

<body>
<div id="lg"></div>
<table id="t">
	<script>
		for(i= 0 ; i< 10 ; i++) document.write('<tr><td>'+i+'.1</td><td>'+i+'.2</td><td>'+i+'.3</td></tr>')
	</script>
</table>
<script>
tds = t.getElementsByTagName('td')
function log(str) {
	var d = document.createElement('div')
	d.innerHTML = str
	lg.appendChild(d)
	lg.scrollTop =  lg.scrollHeight
}
for(i= 0 ; i<tds.length; i++) {
	tds[i].onmouseover = function() { log(this.innerHTML+' over') }
	tds[i].onmouseout = function() { log(this.innerHTML+' out') }
}
document.onmouseover = function() { log('<strong>doc</strong> over') }
document.onmouseout = function() { log('<strong>doc</strong> out') }
</script>
</body>
</html>
...
Рейтинг: 0 / 0
12.02.2006, 14:31:28
    #33539496
serverok
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(HTML) Вызов события при выходе курсора мыши за пределы области
Зачем писать такие громоздкие коды?

Возьми эту таблицу (основную) в другую таблицу. В этой, другой, таблице будет только одна ячейка в которой будет меститься основная таблица, вот на эту ячейку и повесь OnMouseOut. И всем трем параметрам таблицы (border,cellpadding,cellspacing) проставь 0 - она "натянется" на основную таблицу и никаких даже отступов не будет....

-----------------------------------
Бесплатные шаблоны и статьи для вебмастера

Думайте нестандартно.
...
Рейтинг: 0 / 0
14.02.2006, 17:05:22
    #33544309
TroT
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(HTML) Вызов события при выходе курсора мыши за пределы области
этот длинный код - не решение проблемы, а инструмент поиска решения
если при переходе с ячейки на ячейку срабатывает событие onmouseout у документа то как вы думаете ваше решение будет работать?

все еще уверены? пробуем:

Код: 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.
<html>
<head>
<style>
table#t {border-collapse: collapse; }
#t td { padding:  0  1ex; border: 1px solid Silver; }
#lg { float: left; width: 7em; height: 15em; overflow: auto; padding: 1ex; padding-bottom: 1em; border: 1px solid Silver; }
</style>
</head>

<body>
<div id="lg"></div>
<table id="p" cellpadding="0" cellspacing="0" border="0">
<tr>
<td>
	<table id="t">
		<script>
			for(i= 0 ; i< 10 ; i++) document.write('<tr><td>'+i+'.1</td><td>'+i+'.2</td><td>'+i+'.3</td></tr>')
		</script>
	</table>
</td>
</tr>
</table>
<script>
tds = t.getElementsByTagName('td')
function log(str) {
	var d = document.createElement('div')
	d.innerHTML = str
	lg.appendChild(d)
	lg.scrollTop =  lg.scrollHeight
}
for(i= 0 ; i<tds.length; i++) {
	tds[i].onmouseover = function() { log(this.innerHTML+' over') }
	tds[i].onmouseout = function() { log(this.innerHTML+' out') }
}
p.onmouseover = function() { log('<strong>p</strong> over') }
p.onmouseout = function() { log('<strong>p</strong> out') }
</script>
</body>
</html>


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
...
p over
 3 . 1  out
p out
 3 . 2  over
p over
 3 . 2  out
p out
 4 . 2  over
p over
 4 . 2  out
p out
 5 . 2  over
...
...
Рейтинг: 0 / 0
14.02.2006, 17:51:54
    #33544461
serverok
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(HTML) Вызов события при выходе курсора мыши за пределы области
OnMouseOut таблицы вешаем не на основную таблицу, а на вспомогательную (ту которая "обтягивает" основную таблицу) - тогда это событие не будет вызываться при переходе из ячейки в ячейку основной таблицы. См. поставленную задачу.

AlexGЯ хочу чтобы при выходе мыши за пределы всей таблицы вызывалось еще одно событие. Проблема в том, что если привязать функцию на событие таблицы onmouseout, то эта функций вызывается даже при перемещении мыши из одной ячейки в другую. Как добиться желаемого?

-----------------------------------
Бесплатные шаблоны и статьи для вебмастера
ICQ: 225-481-663
Думайте нестандартно.
...
Рейтинг: 0 / 0
14.02.2006, 22:26:43
    #33544903
TroT
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(HTML) Вызов события при выходе курсора мыши за пределы области
я только что продемонстировал, то что курсор "покидает" внешнюю таблицу, при переходе по ячейкам внутренней таблицы
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (HTML) Вызов события при выходе курсора мыши за пределы области / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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