Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   events (https://javascript.ru/forum/misc/1521-events.html)

Виталий 06.08.2008 16:42

events
 
Есть таблица <table>
поверх нее наложена дивка - прозрачная.
на таблицу навешены евенты.
можно сделать чтобы дивка, какбы "не реагировала" на евенты, "пропускала", в все евенты приходили на элементы - находящиеся под ней ?

ZoNT 06.08.2008 16:47

ну она и так не реагирует, или я что-то не понял?

Виталий 06.08.2008 17:04

http://spb-nikitin.110mb.com/test.html вот пример накатал =)
хочу чтобы таблица реагировала когда на дивку кликаешь

ZoNT 06.08.2008 18:40

Ясно, делать придётся так: вешать онклик на документ и смотреть, находится ли таблица под мышкой в данный момент.

Андрей Параничев 06.08.2008 18:45

Виталий,
Bubbling событий происходит только когда элемент находится внутри другого элемента (тогда события выстраиваются в очередь и выполняются для всех элементов). Когда один элемент позиционирован над другим, такого не происходит, потому что для модели этот div находится там, где был объявлен, следовательно события работают как для не позиционированного элемента и table он под div не видит.

ZoNT 06.08.2008 18:50

А вообще, я не вижу причины, по которой надо див помещать над таблицей.
Надо правильно сформулировать задачу и найти оптимальное решение.

Скажи что тебе требуется и мы тебе поможем найти решение без извращений...

Виталий 06.08.2008 19:05

Задача:
есть таблица NxM, необходимо по верх табл рисовать дивки ( DIV1 ), т.е. я "кликают в TD1" ( onmouseclick ) рисуется дим - дальше я отвожу мышу в другой див ( onmousemove ) после делаю onmouseup ( над TD2 ) и дивка должна нарисовать от TD1 до TD2
после я могу начать рисовать от TD1 но на ней уже есть DIV1, но если бы я смог определить что я кликнул над TD1 было бы замечательно.
поэтому был задан вопрос про DIV, которая не ловила бы events

Виталий 06.08.2008 19:08

Цитата:

Сообщение от ZoNT (Сообщение 4238)
Ясно, делать придётся так: вешать онклик на документ и смотреть, находится ли таблица под мышкой в данный момент.

было прикольно объяснить как правильно найти какой элемент находиться под мышой, если к примеру я делаю D&D и тащу в этот момен какой нить DOMElement

ZoNT 06.08.2008 19:10

Зачем над таблицей рисовать дивы от одной ячейки до ругой???

Виталий 06.08.2008 19:13

Цитата:

Сообщение от ZoNT (Сообщение 4245)
Зачем над таблицей рисовать дивы от одной ячейки до ругой???

ну мне необходимо сделать так :)
вообще это для календаря, типа отметить событие

Андрей Параничев 06.08.2008 19:20

Виталий,
В drag'n'drop используется другой подход, там либо определяется глобально по координатам, попал объект, или нет, либо объект движется рядом с мышкой, не перекрывая объект под мышью.

Виталий 06.08.2008 19:26

Это все отклонения, так как насчет основного вопроса ?

Андрей Параничев 06.08.2008 19:44

Виталий,
Ответ - никак.

ZoNT 06.08.2008 21:51

Зачем тебе див??? Выделяй сразу ячейки и всё!!!

Виталий 06.08.2008 23:13

а если м.б. несколько дивов ? т.е. они могут пересекаться

Kolyaj 06.08.2008 23:16

Цитата:

Сообщение от ZoNT
А вообще, я не вижу причины, по которой надо див помещать над таблицей.

Как правило причина у этого одна: делать то, что под дивом, недоступным для мыши. :)

ZoNT 06.08.2008 23:55

Я ж тебе говрю - надо не выдумывать странные решения, а искать оптимальный (самый простой) вариант. И чем меньше лишних элементов, тем быстрее всё будет работать...

Kolyaj 07.08.2008 09:08

..

milk3d 25.01.2009 23:13

А так...
 
Я сейчас не очень соображаю, но нельзя ли просто поместить таблицу над дивом, это я просто не думая сказал, и сделать ее прозрачной.

Я делаю Drag&Drop и не могу найти решения, можно ли как нибудь по другому, чем
//--------
В drag'n'drop используется другой подход, там либо определяется глобально по координатам, попал объект, или нет, либо объект движется рядом с мышкой, не перекрывая объект под мышью.
//--------

x-yuri 26.01.2009 06:12

Цитата:

а если м.б. несколько дивов ? т.е. они могут пересекаться
параллельные дивы никогда не пересекаются, доказано Евклидом)))
а если серьезно, зачем тебе пересекающиеся дивы?

Kolyaj 26.01.2009 11:57

Цитата:

Сообщение от x-yuri
параллельные дивы никогда не пересекаются, доказано Евклидом)))

Это определение, оно не требует доказательства. Поменьше смотрите российской рекламы на ночь :)

x-yuri 26.01.2009 12:00

Цитата:

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

Андрей Параничев 26.01.2009 13:21

Цитата:

Сообщение от milk3d
Я сейчас не очень соображаю, но нельзя ли просто поместить таблицу над дивом, это я просто не думая сказал, и сделать ее прозрачной.

Э-э-э... Что?

Цитата:

Сообщение от milk3d
Я делаю Drag&Drop и не могу найти решения, можно ли как нибудь по другому, чем

Много умов думали над этой задачей и в конце концов пришли к этим решениям. Так что не тратьте свое время на размышления, а реализуйте один из двух этих методов.

milk3dfx 26.01.2009 22:11

Цитата:

Так что не тратьте свое время на размышления, а реализуйте один из двух этих методов.
Я уже начал реализацию того метода где див около курсора перемещается(это можно сделать), по координатам тоже можно уже делал до этого правда не для браузеров. Но этот способ достаточно грузовой, посмотрим мне пока хватит и первого. Спасибо всем


Часовой пояс GMT +3, время: 05:11.