powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Zen и setTimeout
5 сообщений из 5, страница 1 из 1
Zen и setTimeout
    #36418702
sutni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задача: хочу на Zen-странице, по наведению на некий элемент, с задержкой делать нечто.

Код: plaintext
1.
2.
3.
4.
5.
6.
/// Флаг.
Property isMouseOverOutlet As %ZEN.Datatype.boolean [InitialExpression =  0  ];
....
<image id="showOutlet" src="images/go_view.gif" 
onmouseover="zenPage.overOutletInfo();" 
onmouseout="zenPage.hideOutletInfo();"/>

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Method overOutletInfo() [ Language = javascript ]
{
	zenPage.isMouseOverOutlet =  1 ;
	window.setTimeout('zenPage.showOutletInfo();',  1000 );
}

Method showOutletInfo() [ Language = javascript ]
{
	alert(zenPage.isMouseOverOutlet);
	alert(zenPage.isMouseOverOutlet);
}

Method hideOutletInfo() [ Language = javascript ]
{
	zenPage.isMouseOverOutlet =  0 ;
}

Удивляют результаты (идентичных) alert'ов из метода showOutletInfo:
Для Firefox (3.5.7):
навёл и держу: 1 затем 0
навёл и сразу увёл: 0 и 0

Для Chrome (3.0.195.38):
навёл и держу: 1 затем 1
навёл и сразу увёл: 0 и 0

Для IE (7.0):
навёл и держу: 1 затем 0
навёл и сразу увёл: 0 и 0

Как это можно объяснить?
...
Рейтинг: 0 / 0
Zen и setTimeout
    #36419148
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тем что браузеры очень капризные приложения, а Zen относительно новая технология? Вы только сейчас с эти с толкнулись?
...
Рейтинг: 0 / 0
Zen и setTimeout
    #36419406
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doublefint,

Браузеры, имхо, на порядок более удобны, чем что-либо другое... У нас даже софт мобильных терминалов на них сделан ;)

"Вы просто не умеете их готовить" ;)

sutni,

Думаю, проблема касается исключительно команды alert() - в хроме она, очевидно, напрочь останавливает обработку событий (он на то и сырой)
Без алерта должно быть все ок. Если же Вам очень хочется именно такой код отработать корректно, то у меня работает так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Method showOutletInfo() [ Language = javascript ]
{
	alert(zenPage.isMouseOverOutlet);
	window.setTimeout('zenPage.showAfterShowOutletInfo();',  100 );
}

Method showAfterShowOutletInfo() [ Language = javascript ]
{
	alert(zenPage.isMouseOverOutlet);
}
...
Рейтинг: 0 / 0
Zen и setTimeout
    #36419554
sutni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kolesov,

Сами alert'ы, как нетрудно догадаться, мне не нужны вовсе. Нужно в методе showOutletInfo обрабатывать значение ..isMouseOverOutlet. Конкретно: если isMouseOverOutlet = 1 (курсор находится над элементом) - делать что-то; если isMouseOverOutlet = 0 (курсор за время задержки успели увести от элемента) - ничего не делать.
Вот в процессе этого я уткнулся в то, что zenPage.isMouseOverOutlet ведёт себя непредсказуемо.
Как пример этого я поместил два идентичных alert'а подряд.
...
Рейтинг: 0 / 0
Zen и setTimeout
    #36420309
sutni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дело действительно в alert.
Когда я делаю что-то вроде:
Код: plaintext
zenPage.getComponentById('IDTemp').setValue(zenPage.isMouseOverOutlet);
всё нормально.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Zen и setTimeout
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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