![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| DigitalBrain |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 24.4.2010 Репутация: нет Всего: нет |
Здравствуйте господа!
Попробую задать вопрос на этом форуме( т.к на другом решить проблему не смогли а это выглядит куда солидней гг) есть кнопка созданная с JS с графикой с помощью background-image оформленная как класс. Она является элементом table с 4 мя колонками-левый край кнопки-ячейка с иконкой кнопки(элемент image) , ячейка с span для надписи к кнопке ну и ячейка-правый край кнопки. Ячейки полностью занимают всю площадь table(нет внутренних отступов) а теперь к сути проблемы : Нужно задать реакцию кнопки на событие onmouseover / onmouseout. Казалось бы все просто , но если обработчик поставить на хендл непосредственно элемента table- то при перемещение указателя мышки уже внутри кнопки(таблицы) по разным дочерним ее элементам(например span, image) для них генерируются тоже такие же события - их соответственно получает обработчик onmouseover table , так как событие всплывает вверх по иерархии элементов. Т.е генерируются ложные события для таблицы во время перемещения указателя по ее дочерних элементах - так как указатель уже внутри table и никаких событий не должно ему поступать. Фильтр по event.target нечего не даст если сравнивать ее с хенделом table - так как сам table не выступает за свои ячейки - т.е он всегда под ними. Выхода я не как не найду. Думаю Кто то уже должен был решать ету проблемы. Помогите свежими идеями очень прошу=) Присоединённый файл ( Кол-во скачиваний: 7 )
project.jpg 29,39 Kb |
|||
|
||||
| Amphiluke |
|
|||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 35 Всего: 112 |
Хм. Надеюсь, понял проблему правильно. Вот примерчик.
Получился довольно-таки монстр, но работает. Суть в том, чтобы при возникновении события onmouseover обнулить его обработчик, а при возникновении события onmouseout — восстановить при условии, что курсор вышел за пределы таблицы. Добавлено через 3 минуты и 48 секунд Random-ный цвет таблицы сделал, чтобы убедиться, что при ерзании мышкой по дочерним элементам таблицы не происходит ложных срабатываний обработчика события onmouseover. |
|||
|
||||
| Amphiluke |
|
||||||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 35 Всего: 112 |
P.S. Поскольку у вас много кнопок, то вместо того, чтобы задавать каждой свой id, можно воспользоваться свойством currentTarget. Я имею в виду, что вместо этого:
можно написать так:
Это сообщение отредактировал(а) Amphiluke - 24.4.2010, 23:00 |
||||||
|
|||||||
| DigitalBrain |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 24.4.2010 Репутация: нет Всего: нет |
Спасибо огромное!
Неожидал такой оперативности в помощи. Действительно помог такой алгоритм) Признаюсь даже не знал про свойство relatedTarget / toElement =) точнее когда то встречал их , но не обращал внимания) а зря... 3 дня мук кончились гг Добавлено через 7 минут и 35 секунд
Да можно, может даже и лучший вариант. Хотя это не помеха так как кнопки-- экземпляр класса и все элементы там созданы с JS -- document.createElement('table'); вегда есть хенл на него , нет необходимости давать каждому свой ID ,а значит и получать по нем хендл ненужно.... |
|||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |