Блокировка событий всех дочерних элементов
Здравствуйте!
Задача следующая: Во время выполнения ajax-запроса необходимо блокировать элемент dom, включая все его дочерние элементы (все события onclick, omnouseover и т.д. всех дочерних элементов, input-ы и т.д.). Проблем с inputam-и не возникло. Как блокировать на время события всех дочерних элементов? Прошу не предлагать сторонние библиотеки, а только средствами javascript или jquery. Благодарю за внимание. |
что значит блокировать?
Опишите подробней чего вы хотите добиться. И несколько ответов наугад: 1) синхронный AJAX при этом окно браузера вообще не будет реагировать на события, пока не будет совершена загрузка 2) снять все обработчики события, которые не должны быть обработаны, и повесить их обратно, после того как запрос будет выполнен. 3) прозрачный DIV поверх "заблокированного" exfcnrf |
Gvozd, блокировать ,имею ввиду отключить во время выполнения ajax запроса возможность вызова событий дочерних элементов какогто допустим div-а.
1) синхронный не подходит, не хочу блокировать браузер целиком 2)Этот тоже думал. Но, допустим есть родительский элемент div, у него есть множество дочерних элементов со своими событиями, которые могут определяться динамически из js. Да, можно убрать все события с unbind, но как их привязать обратно? т.е. как узнать какое событие привязать к какому-то элементу, если элементы могут быть без id и события могут быть не ввиде отдельной функции, а описаны в безымянной функции для данного элемента? Поняли мой вопрос? :) 3) Прозрачный div пробовал, только там возникла небольшая проблемка. А именно: внутри div-а, который необходимо заблокировать, создаю прозрачный div с z-index-ом больше чем исходный. с помощью jquery ему задаю размеры исходного diva, но проблема в том, что непонятно работает функйия jquery. height() и windth(), т.е. размер прозрачного div то меньше, то больше исходного diva. Расскажите более подробно про второй или третий вариант, как их правильно реализовать? |
Цитата:
<div style="position:relative;width:100px;height:32px;padding:0;margin:0;"> <div id=divA style="position:absolute;z-index:0;width:100%;height:100%padding:0;margin:0;"></div> <div id=divB style="width:100%;height:100%padding:0;margin:0;"></div> </div> Образчик - размеры задаются внешним div(ом) - divA и divB - равны между собой Поднимать нужно divA |
Deff, спасибо, взял за основу твою схему, помогло )
|
Часовой пояс GMT +3, время: 20:04. |