Forum Webscript.Ru

Программирование => JavaScript & JScript => Тема начата: MiCRONiUS от 24 Января 2005, 18:23:33

Название: Перехват событий
Отправлено: MiCRONiUS от 24 Января 2005, 18:23:33
Подскажите как можно реализовать данную функцию для IE
window.captureEvents(Event.CLICK);
вот так в Netscape Navigator 4.0+
помогити или скажити где  можно найти информацию по этому вопросу
Название: Перехват событий
Отправлено: CGVictor от 24 Января 2005, 20:25:46
Если тебе нужен щелчок по документу - пиши document.onClick или просто в body обработчик onClick. Если нет - напиши, чего хотел добиться.
Название: Перехват событий
Отправлено: MiCRONiUS от 24 Января 2005, 21:35:37
хотел вот это для IE

window.captureEvents(Event.MOUSEDOWN | Event.MOUSEUP);
window.onmousedown= startDrag;
window.onmouseup= endDrag;
window.onmousemove= moveIt;
   function startDrag(e) {
       window.captureEvents(Event.MOUSEMOVE);}
   function moveIt(e) {
       status = "x: " + e.pageX + " y: " + e.pageY;}
   function endDrag(e) {
       window.releaseEvents(Event.MOUSEMOVE);}

так расписана реализация функции drugdrop в NetScape 4
из книги ВВЕДЕНИЕ В JAVASCRIPT ДЛЯ МАГА
© 1996, 1997 Стефан Кох (Stefan Koch)

но почемуто все одно в 7.2. и этот код не фунциклирует,
короче необходима функция драгдроп под IE и NN4+
Название: Перехват событий
Отправлено: CGVictor от 24 Января 2005, 23:14:46
У leechy (http://leechy.design.ru/puzzle/) работало вроде бы везде.
А вообще - оставляешь все как есть, только Eventы не нужны.
В обработчиках используешь event.srcElement (так, по-моему...) - это тот обьект, для которого произошло событие.
Название: Перехват событий
Отправлено: MiCRONiUS от 24 Января 2005, 23:33:39
благадарю, посмотрю код может разберусь
Название: Перехват событий
Отправлено: virka от 25 Января 2005, 10:01:16
Если нужно привязать функцию к какому-нибудь событию документа, то связываешь их в блоке (до body, короче говоря):




или привязываешь код к событию:


Название: Перехват событий
Отправлено: MiCRONiUS от 25 Января 2005, 13:35:46
а если одно событие должно обробатываться только после произошедшего первого события т.е.  MouseDown+MouseMove
MousMove обробатывается только при наличии нажатой кнопки мыши ?

 и каким путем сбросить оброботку данного события на стандартный обработчик
Название: Перехват событий
Отправлено: MiCRONiUS от 25 Января 2005, 17:50:59
Поспешил радоваться, всеже так и не найдено метода для совмесной обработки событий :(
Название: Перехват событий
Отправлено: virka от 26 Января 2005, 10:16:46
MiCRONiUS, а чем Вас не устраивают событие document.ondragstart (IE 4), или семейство событий ondrag, ondragenter, ondragover, ondragstart, и т.д. (IE 5)?
Про эти события можно почитать
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/behaviors/library/movable/ondrag.asp
Название: Перехват событий
Отправлено: MiCRONiUS от 26 Января 2005, 14:23:25
просто нужен метод отвечающий и кроссброузенгу, я реализовывал это через MouseUp MouseDown и MouseMove, так же это и под NN ...
Название: Перехват событий
Отправлено: CGVictor от 26 Января 2005, 16:07:37
MiCRONiUS
Ну посмотри ты у leechy код! Тот просто запоминает обьект на mdown, чистит запомненное на mup и проверяет/перетаскивает на mmove! Или мне его сюда перепечатать?
Название: Перехват событий
Отправлено: MiCRONiUS от 28 Января 2005, 03:30:13
ну если это комку еще интересно то можно, а на счет кода заблудился я там :)))
Название: Перехват событий
Отправлено: virka от 31 Января 2005, 17:55:48
MICRONiUS, первое и самое простое, что приходит в голову, это ввести глобальную булеву переменную, на onmousedown делать ее true, на onmouseup false, на onmousemove выполнение самой функции при условии true:



Это, конечно, может в реале не работать, надо смотреть, в любом случае стоит посмотреть коды других людей, только я бы советовал вначале попытаться делать самому, а то можно разучиться думать, будет достаточно просто знать.
Название: Перехват событий
Отправлено: MiCRONiUS от 31 Января 2005, 19:41:48
благодорю за участие :)