Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.06.2012, 18:21
Профессор
Отправить личное сообщение для Telnet Посмотреть профиль Найти все сообщения от Telnet
 
Регистрация: 21.02.2011
Сообщений: 160

Как правильно установить обработчик
var cor = $("<div class='sky createCorrection' sky='"+id_sens+"' sortID='"+sortID+"' skyID='"+skyID+"'" +
	" style='position:absolute; width:"+w+"; "+left+" top:"+maxOffsetTop+"px;'>"+//
		 "<h3>Внесите изменения в выбраный текст</h3>"+
		 "<form method='post' id='edit_form' action='#'>"+
			"<textarea id='selected_sens"+sortID+"' name='selected_sens' cols='65' rows='10' ></textarea><br />"+
			"<input type='submit' class='button_save' value='Сохранить'>"+
			"<input type='button' class='button_cancel' value='Отменить'>"+
			"<input type='hidden' id='id_sens' name='id_sens' value='' />"+
			"<input type='hidden' name='option' value='com_wiki' />"+
			"<input type='hidden' name='format' value='raw' />"+
			"<input type='hidden' name='task' value='save_edit' />"+
		 "</form>"+			 
	 "</div>"
).appendTo($('#wrap_edit'));	
$('#wrap_edit').on('click', '.sky:not(form)', function(){
alert('.sky:not(form)');
});

Добрый день.
Есть такой вот блок class='sky он создается динамически, в нем есть форма, так вот мне нужно что событие нажатие кнопки мыши происходило только по щелчку на блоке с классом sky, но не срабатывало когда пользователь нажимает на форму которая содержится внутри этого блока.
Для установки его пытаюсь цеплять его через on на wrap_edit это блок содержит в себе все динамически добавляемые блоки sky, все бы хорошо но селектор .sky:not(form) как то не правильно отрабатывает и любой клик даже внутри формы приводит к срабатыванию обработчика.
И тоже самое внутри формы есть 2 кнопки
$('.button_cancel').live('click', function(e){			
});

Нужно на них тоже установить обработчики так что б они вызывали обработку события клик для содержащего их блока sky

Последний раз редактировалось Telnet, 15.06.2012 в 18:25.
Ответить с цитированием
  #2 (permalink)  
Старый 15.06.2012, 21:04
Профессор
Отправить личное сообщение для Telnet Посмотреть профиль Найти все сообщения от Telnet
 
Регистрация: 21.02.2011
Сообщений: 160

Ну может знает кто как определить что клик был не на вложенном или на оборот на вложенном элементе не хочется как то по координатам вычислять
Ответить с цитированием
  #3 (permalink)  
Старый 15.06.2012, 23:15
Интересующийся
Отправить личное сообщение для see613 Посмотреть профиль Найти все сообщения от see613
 
Регистрация: 20.04.2011
Сообщений: 24

$('.sky').on_или_live,_не_имеет_знач ения('click', function(e){
твои действия
});
$('.sky form').on('click', function(e){
e.stopPropagation();
return false; // чтоб если нажал на кнопку ничего не произошло
});

stopPropagation предотвращает всплытие события(оно происходит от потомков к родителям), тоесть форма почувствует событие, а .sky уже нет
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно удалить из шаблона, javascript код? QroxZ Общие вопросы Javascript 0 04.11.2011 17:59
Как правильно очистить maxlength в input? Маэстро Events/DOM/Window 10 22.06.2011 18:14
Как "обмануть" обработчик события? itPiligrim Events/DOM/Window 0 13.05.2010 22:55
Подскажите как правильно оформить код frolvict Общие вопросы Javascript 4 30.04.2010 10:51
Как правильно оформить Send() Алекс97 AJAX и COMET 20 30.10.2008 19:19