Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > Привязка события клика при клике на элемент


Автор: taral 10.9.2010, 15:21
Здравствуйте. Прошу поделится решением такой задачи.
Код

<div id="hhh">hhh</div>

Код

$('#hhh').click(function(){
   alert(1);
   $('body').click(function(){ alert(2); });
})

При нажатии на дим hhh всплывает алерт1 и алерт2. Мне же нужно что бы всплыл алерт1 и после повторного нажатия на документ всплывал алерт2. Для написания скрипта использовал Jquery

Добавлено через 3 минуты и 24 секунды
Почему так случается я понял. Это связано с порядком срабатывания событий в js. А вот как элегантно решить проблему пока не приходит в ум. Только топорные методы

Автор: skyboy 10.9.2010, 15:34
в функцию-обработчик первым параметром передается объект события. можно остановить "просачивание" события по родителям при помощи вызова метода stopPropagation():
Код

$('#hhh').click(function(ev){
   alert(1);
   $('body').click(function(){ alert(2); });
   ev.stopPropagation();
})

Автор: taral 10.9.2010, 15:37
Спасибо. Это какраз то что я и искал. Эта функция кросбраузерная? Ато вспоминая IE...

Автор: CruorVult 10.9.2010, 15:47
Цитата(taral @  10.9.2010,  15:37 Найти цитируемый пост)
Эта функция кросбраузерная?

Нет, IE не поддерживает!

Автор: taral 10.9.2010, 15:55
Вроде Jquery сделала его кросбаузерным

Автор: skyboy 10.9.2010, 16:20
CruorVult, в смысле, jquery не работает под IE?  smile 

Автор: CruorVult 11.9.2010, 12:34
Цитата(skyboy @  10.9.2010,  16:20 Найти цитируемый пост)
CruorVult, в смысле, jquery не работает под IE?   

завтыкал, думал stopPropagation() яваскриптовский а не фреймоворковский.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)