powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (HTML) Вызов события при выходе курсора мыши за пределы области
8 сообщений из 8, страница 1 из 1
(HTML) Вызов события при выходе курсора мыши за пределы области
    #33526410
AlexG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть таблица с ячейками. К каждой ячейке привязано событие на вход мыши и на выход. Я хочу чтобы при выходе мыши за пределы всей таблицы вызывалось еще одно событие. Проблема в том, что если привязать функцию на событие таблицы onmouseout, то эта функций вызывается даже при перемещении мыши из одной ячейки в другую. Как добиться желаемого?
...
Рейтинг: 0 / 0
(HTML) Вызов события при выходе курсора мыши за пределы области
    #33526585
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуйте проверять, откуда пришла мыша. Если ячейки той же таблицы, то не заглушите событие.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(HTML) Вызов события при выходе курсора мыши за пределы области
    #33527881
AlexG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем, пока сделал так: окаймил со всех сторон нужную область дополнительными ячейками и этим дополнительным объектам назначил событие onmouseout. В общем-то, работает почти так, как нужно =) А с твоим советом пока не очень разобрался. Т.е. я могу узнать откуда пришло событие. Но почему-то оно иногда приходит по нескольку раз от таблицы... Я проверял свойство target/srcElement. Так что пока я еще разбираюсь, но идея понятна, спасибо.
...
Рейтинг: 0 / 0
(HTML) Вызов события при выходе курсора мыши за пределы области
    #33536861
TroT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
видимо, ваще решение единственое возможное

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

Код: 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
(HTML) Вызов события при выходе курсора мыши за пределы области
    #33539496
serverok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Зачем писать такие громоздкие коды?

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

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

Думайте нестандартно.
...
Рейтинг: 0 / 0
(HTML) Вызов события при выходе курсора мыши за пределы области
    #33544309
TroT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
этот длинный код - не решение проблемы, а инструмент поиска решения
если при переходе с ячейки на ячейку срабатывает событие 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
(HTML) Вызов события при выходе курсора мыши за пределы области
    #33544461
serverok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
OnMouseOut таблицы вешаем не на основную таблицу, а на вспомогательную (ту которая "обтягивает" основную таблицу) - тогда это событие не будет вызываться при переходе из ячейки в ячейку основной таблицы. См. поставленную задачу.

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

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


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