Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.02.2010, 11:25
Кандидат Javascript-наук
Отправить личное сообщение для jetli13 Посмотреть профиль Найти все сообщения от jetli13
 
Регистрация: 25.11.2009
Сообщений: 109

создание собственных событий
Есть 2 дива в каждом из которых по одному фрейму которые уже подгружены (на onload не повесишься). Есть также две конпки для переключения между дивами. Т.е княпнул на первую кнопку
div1 display:none;
div2 display:block;
княпнул на другую все наоборот.
Можно ли создать из этого переключения событие которое бы оповещало о том что див был скрыт/показан, и вызывал бы функции которые связаны с этим событием. Очень не охото прописывать все в эти кнопки.

спаибо.

UPD:
кое что нашел http://habrahabr.ru/blogs/javascript/70793/

Последний раз редактировалось jetli13, 18.02.2010 в 12:32.
Ответить с цитированием
  #2 (permalink)  
Старый 18.02.2010, 18:06
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

Если целью скрипта является лишь смена отображения, можно менять класс у обвертки, таким образом убрав все данные об открытых блоках в одно место и делегировав состояния 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>
Ответить с цитированием
  #3 (permalink)  
Старый 18.02.2010, 18:13
Кандидат Javascript-наук
Отправить личное сообщение для jetli13 Посмотреть профиль Найти все сообщения от jetli13
 
Регистрация: 25.11.2009
Сообщений: 109

Нет целью является зажигание события.
Т.е. перед тем как див скроется должно зажечься "я скрываюсь". И все объекты которые прослушивают это событие получили извещение и соответственным образом отреагировали на него.
Ответить с цитированием
  #4 (permalink)  
Старый 18.02.2010, 19:18
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

jetli13,
если Вы говорите про обычные события javascript, то надеюсь, Вы отчетливо понимаете, что у любого события есть srcElement, и событие «всплывает» от него вниз по ДОМу к корню, игнорируя соседние ветви.
Затруднение не в том, чтобы запустить событие, а в том, пройдет ли это событие через прослушивающий элемент. Чтобы довести событие до любого произвольного элемента ДОМа, придется вызывать его для каждого концевого элемента каждой подветви. Это возможно, но зачем?
Ответить с цитированием
  #5 (permalink)  
Старый 19.02.2010, 10:11
Кандидат Javascript-наук
Отправить личное сообщение для jetli13 Посмотреть профиль Найти все сообщения от jetli13
 
Регистрация: 25.11.2009
Сообщений: 109

Нет, все же я говорю про создание собственных событий на которые можно повесится.
Вцелом ответ я нашел, в посте ссылку на который выложил выше.
Ответить с цитированием
  #6 (permalink)  
Старый 19.02.2010, 12:07
Ламер
Отправить личное сообщение для DooMer Посмотреть профиль Найти все сообщения от DooMer
 
Регистрация: 19.02.2010
Сообщений: 295

События по типу онШов нету, но можна запустить таймер функцию которая будет раз в энное время проверять показан див или скрыт
Ответить с цитированием
  #7 (permalink)  
Старый 19.02.2010, 14:30
Кандидат Javascript-наук
Отправить личное сообщение для jetli13 Посмотреть профиль Найти все сообщения от jetli13
 
Регистрация: 25.11.2009
Сообщений: 109

Сообщение от DooMer Посмотреть сообщение
События по типу онШов нету
именно по этому я хочу создать свое.
А таймер на мой взгляд, нагрузка лишняя
Ответить с цитированием
  #8 (permalink)  
Старый 19.02.2010, 14:46
Ламер
Отправить личное сообщение для DooMer Посмотреть профиль Найти все сообщения от DooMer
 
Регистрация: 19.02.2010
Сообщений: 295

хм, на таймерах не будет осбой нагруки, потому как сообщения таймера не остаються надолго в очереди сообщений(с точки зрения прикладного программинга). А учитывая что в ф-ции будет всего 1-2 if с проверкой на видимость дива, то проблем со скоростью не будет. Ресурсов будет кушать меньше чем часы
Ответить с цитированием
  #9 (permalink)  
Старый 20.02.2010, 14:31
Новичок на форуме
Отправить личное сообщение для sektorA Посмотреть профиль Найти все сообщения от sektorA
 
Регистрация: 20.02.2010
Сообщений: 1

Вопрос каким образом или как возможно закодировать событие onMouseOver в базу 64 киньте какой-нить пример.

<span onMouseover="window.alert('Пример использования события onMouseOver');">Whatever</span>

хотелось бы видеть код таким образом при наведении мышки исполнялся бы код но в базе 64
возможно ли это
<a href="data:text/html;base64, PHNjcmlwdCBOQU1FPSIiIG9ubW91c2VvdmVyPWFsZXJ0KGFsZX J0KT48L3NjcmlwdD4=">click me</a>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с обработкой событий! Enneary jQuery 1 05.02.2010 13:32
Кроссбраузерное навешивание событий на динамический элемент Pula Events/DOM/Window 5 02.07.2009 15:02
Динамическое создание событий в цикле IcyBox Общие вопросы Javascript 2 01.06.2009 08:42
Повторное создание iframe Smoke Events/DOM/Window 7 07.02.2009 15:14
Модели событий partyzan Общие вопросы Javascript 2 30.04.2008 20:48