Автор Тема: Перехват событий  (Прочитано 6034 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн MiCRONiUS

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 23
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Перехват событий
« : 24 Января 2005, 18:23:33 »
Подскажите как можно реализовать данную функцию для IE
window.captureEvents(Event.CLICK);
вот так в Netscape Navigator 4.0+
помогити или скажити где  можно найти информацию по этому вопросу

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
Перехват событий
« Ответ #1 : 24 Января 2005, 20:25:46 »
Если тебе нужен щелчок по документу - пиши document.onClick или просто в body обработчик onClick. Если нет - напиши, чего хотел добиться.
LJ: Backslashed life (rss)

Оффлайн MiCRONiUS

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 23
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Перехват событий
« Ответ #2 : 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+
« Последнее редактирование: 24 Января 2005, 22:11:55 от MiCRONiUS »

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
Перехват событий
« Ответ #3 : 24 Января 2005, 23:14:46 »
У leechy работало вроде бы везде.
А вообще - оставляешь все как есть, только Eventы не нужны.
В обработчиках используешь event.srcElement (так, по-моему...) - это тот обьект, для которого произошло событие.
LJ: Backslashed life (rss)

Оффлайн MiCRONiUS

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 23
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Перехват событий
« Ответ #4 : 24 Января 2005, 23:33:39 »
благадарю, посмотрю код может разберусь

Оффлайн virka

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 68
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Перехват событий
« Ответ #5 : 25 Января 2005, 10:01:16 »
Если нужно привязать функцию к какому-нибудь событию документа, то связываешь их в блоке (до body, короче говоря):




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



Оффлайн MiCRONiUS

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 23
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Перехват событий
« Ответ #6 : 25 Января 2005, 13:35:46 »
а если одно событие должно обробатываться только после произошедшего первого события т.е.  MouseDown+MouseMove
MousMove обробатывается только при наличии нажатой кнопки мыши ?

 и каким путем сбросить оброботку данного события на стандартный обработчик
« Последнее редактирование: 25 Января 2005, 17:41:42 от MiCRONiUS »

Оффлайн MiCRONiUS

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 23
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Перехват событий
« Ответ #7 : 25 Января 2005, 17:50:59 »
Поспешил радоваться, всеже так и не найдено метода для совмесной обработки событий :(
« Последнее редактирование: 25 Января 2005, 20:34:01 от MiCRONiUS »

Оффлайн virka

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 68
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Перехват событий
« Ответ #8 : 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

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 23
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Перехват событий
« Ответ #9 : 26 Января 2005, 14:23:25 »
просто нужен метод отвечающий и кроссброузенгу, я реализовывал это через MouseUp MouseDown и MouseMove, так же это и под NN ...

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
Перехват событий
« Ответ #10 : 26 Января 2005, 16:07:37 »
MiCRONiUS
Ну посмотри ты у leechy код! Тот просто запоминает обьект на mdown, чистит запомненное на mup и проверяет/перетаскивает на mmove! Или мне его сюда перепечатать?
LJ: Backslashed life (rss)

Оффлайн MiCRONiUS

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 23
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Перехват событий
« Ответ #11 : 28 Января 2005, 03:30:13 »
ну если это комку еще интересно то можно, а на счет кода заблудился я там :)))

Оффлайн virka

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 68
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Перехват событий
« Ответ #12 : 31 Января 2005, 17:55:48 »
MICRONiUS, первое и самое простое, что приходит в голову, это ввести глобальную булеву переменную, на onmousedown делать ее true, на onmouseup false, на onmousemove выполнение самой функции при условии true:



Это, конечно, может в реале не работать, надо смотреть, в любом случае стоит посмотреть коды других людей, только я бы советовал вначале попытаться делать самому, а то можно разучиться думать, будет достаточно просто знать.

Оффлайн MiCRONiUS

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 23
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Перехват событий
« Ответ #13 : 31 Января 2005, 19:41:48 »
благодорю за участие :)

 

Sitemap 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