Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.06.2017, 13:09
Аватар для borus
Кандидат Javascript-наук
Отправить личное сообщение для borus Посмотреть профиль Найти все сообщения от borus
 
Регистрация: 07.12.2012
Сообщений: 147

Как предотвратить выполнение функции для обертки?
Здравствуйте!

Набрал пример верстки с обработчиками.
Скажите, пожалуйста, как сделать так, чтобы при клике по div.form не вызывался обработчик клика для div.wrap?
Ответить с цитированием
  #2 (permalink)  
Старый 02.06.2017, 13:13
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Сообщение от borus
как сделать так, чтобы при клике по div.form не вызывался обработчик клика для div.wrap?
Как вариант...
https://jsfiddle.net/eusexwd6/11/
Ответить с цитированием
  #3 (permalink)  
Старый 02.06.2017, 13:19
Аватар для borus
Кандидат Javascript-наук
Отправить личное сообщение для borus Посмотреть профиль Найти все сообщения от borus
 
Регистрация: 07.12.2012
Сообщений: 147

спасибо!
Ответить с цитированием
  #4 (permalink)  
Старый 02.06.2017, 14:44
Аватар для borus
Кандидат Javascript-наук
Отправить личное сообщение для borus Посмотреть профиль Найти все сообщения от borus
 
Регистрация: 07.12.2012
Сообщений: 147

Сообщение от ksa Посмотреть сообщение
Как вариант...
https://jsfiddle.net/eusexwd6/11/
если воспользоваться вашим вариантом блокировки, и форма будет такой, с кнопкой input типа submit(кнопка "Купить" внизу формы), то return false для обработчика нажатия на форму с id=#contactForm_oneclick1 не остановит ли отправку данных формы скрипту-приемнику?

Последний раз редактировалось borus, 02.06.2017 в 15:04.
Ответить с цитированием
  #5 (permalink)  
Старый 02.06.2017, 15:27
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

borus, если в обработчике submit вернуть false - форма не отправится.
Ответить с цитированием
  #6 (permalink)  
Старый 02.06.2017, 15:39
Аватар для borus
Кандидат Javascript-наук
Отправить личное сообщение для borus Посмотреть профиль Найти все сообщения от borus
 
Регистрация: 07.12.2012
Сообщений: 147

Сообщение от ksa Посмотреть сообщение
borus, если в обработчике submit вернуть false - форма не отправится.
а я возвращаю false не в обработчике клика по кнопке submit, а в обработчике клика по форме с этими кнопками.
Как тогда надо изменить ваш javascript, чтобы форма таки отправила данные, но и обработчик клика для обертки #wrap не сработал после нажатия на кнопку Купить или куда-то на всплывающую форму?
Ответить с цитированием
  #7 (permalink)  
Старый 02.06.2017, 15:51
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

borus, пример тестовый сделай. Т.к. пока не понятно в чем собственно проблема...
Ответить с цитированием
  #8 (permalink)  
Старый 02.06.2017, 16:51
Аватар для borus
Кандидат Javascript-наук
Отправить личное сообщение для borus Посмотреть профиль Найти все сообщения от borus
 
Регистрация: 07.12.2012
Сообщений: 147

Сообщение от ksa Посмотреть сообщение
borus, пример тестовый сделай. Т.к. пока не понятно в чем собственно проблема...
Вот пример. Если кликнуть на кнопку Заказ в 1 клик, а потом в заполненной всплывшей форме нажать на "Купить", то ничего не сработает в виду наличия обработчика:
$("#contactForm_oneclick").click( function(){
		return false;
	})

который предотвращает скрытие формы по клику на неё обработчиком:
jQuery("#aux").click( function() {//функция, скрывающая форму
	jQuery("#contactForm_oneclick").fadeOut();
	jQuery("#window").fadeOut();
	jQuery("#aux").css("display","none");
	jQuery("html,body").css("overflow","auto");
} );

Последний раз редактировалось borus, 02.06.2017 в 17:28.
Ответить с цитированием
  #9 (permalink)  
Старый 03.06.2017, 10:37
Аватар для borus
Кандидат Javascript-наук
Отправить личное сообщение для borus Посмотреть профиль Найти все сообщения от borus
 
Регистрация: 07.12.2012
Сообщений: 147

Сделал исключение для работы блокировщика скрывателя формы с помощью такого подсказанного решения:
$("#contactForm_oneclick").click( function(e){
		if(e.target.getAttribute('class') != 'addtocart_button') {
			return false;
		}
	})

Возник второй вопрос: отчего если сразу после открытия или обновления страницу чуть прокрутить вниз так, чтобы можно было нажать на кнопку "Заказ в 1 клик" и нажать её, страница медленно под затемнением скроллится к началу?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как для нескольких элементов с одним id присвоить style rfhnjirf Элементы интерфейса 3 19.05.2017 10:41
Посоветуйте как улучшить код для работы с history api [ jquery + js + history api ] Geo Ваши сайты и скрипты 0 12.01.2014 00:41
Как вызвать eval в контексте другой функции для доступа к ее локальным переменным? Почемучкин Общие вопросы Javascript 8 29.10.2012 22:31
Как подключить JQUery при разработке расширения для OPERA? Romingood jQuery 1 24.10.2012 11:25
как предотвратить повторное создание функции kichSman jQuery 3 06.09.2011 13:49