создание собственных событий
Есть 2 дива в каждом из которых по одному фрейму которые уже подгружены (на onload не повесишься). Есть также две конпки для переключения между дивами. Т.е княпнул на первую кнопку
div1 display:none; div2 display:block; княпнул на другую все наоборот. Можно ли создать из этого переключения событие которое бы оповещало о том что див был скрыт/показан, и вызывал бы функции которые связаны с этим событием. Очень не охото прописывать все в эти кнопки. спаибо. UPD: кое что нашел http://habrahabr.ru/blogs/javascript/70793/ |
Если целью скрипта является лишь смена отображения, можно менять класс у обвертки, таким образом убрав все данные об открытых блоках в одно место и делегировав состояния css, вместо того, чтобы их отслеживать руками.
Например, так: <style type="text/css"> .tpl-togglebox {display: none} #tpl-togglebox-group.state-1 .tpl-togglebox-1, #tpl-togglebox-group.state-2 .tpl-togglebox-2 { display: block; } </style> <script type="text/javascript" src="/misc/pack.2.js"></script> <script type="text/javascript"> function switchToggleBox(n){ var toggleboxGroup = document.getElementById("tpl-togglebox-group"); toggleboxGroup.className = (toggleboxGroup.className.replace(/(^|\s)+state-[^\s]+/g, '') + " state-" + n); } </script> <div id="tpl-togglebox-group" class="state-1"> <div class="tpl-togglebox tpl-togglebox-1">Блок 1</div> <div class="tpl-togglebox tpl-togglebox-2">2-й блок</div> </div> <button onclick="switchToggleBox(1)">1</button> <button onclick="switchToggleBox(2)">2</button> |
Нет целью является зажигание события.
Т.е. перед тем как див скроется должно зажечься "я скрываюсь". И все объекты которые прослушивают это событие получили извещение и соответственным образом отреагировали на него. |
jetli13,
если Вы говорите про обычные события javascript, то надеюсь, Вы отчетливо понимаете, что у любого события есть srcElement, и событие «всплывает» от него вниз по ДОМу к корню, игнорируя соседние ветви. Затруднение не в том, чтобы запустить событие, а в том, пройдет ли это событие через прослушивающий элемент. Чтобы довести событие до любого произвольного элемента ДОМа, придется вызывать его для каждого концевого элемента каждой подветви. Это возможно, но зачем? |
Нет, все же я говорю про создание собственных событий на которые можно повесится.
Вцелом ответ я нашел, в посте ссылку на который выложил выше. |
События по типу онШов нету, но можна запустить таймер функцию которая будет раз в энное время проверять показан див или скрыт
|
Цитата:
А таймер на мой взгляд, нагрузка лишняя |
хм, на таймерах не будет осбой нагруки, потому как сообщения таймера не остаються надолго в очереди сообщений(с точки зрения прикладного программинга). А учитывая что в ф-ции будет всего 1-2 if с проверкой на видимость дива, то проблем со скоростью не будет. Ресурсов будет кушать меньше чем часы
|
Вопрос каким образом или как возможно закодировать событие onMouseOver в базу 64 киньте какой-нить пример.
<span onMouseover="window.alert('Пример использования события onMouseOver');">Whatever</span> хотелось бы видеть код таким образом при наведении мышки исполнялся бы код но в базе 64 возможно ли это <a href="data:text/html;base64, PHNjcmlwdCBOQU1FPSIiIG9ubW91c2VvdmVyPWFsZXJ0KGFsZX J0KT48L3NjcmlwdD4=">click me</a> |
Часовой пояс GMT +3, время: 21:06. |