Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как предотвратить выполнение функции для обертки? (https://javascript.ru/forum/events/69163-kak-predotvratit-vypolnenie-funkcii-dlya-obertki.html)

borus 02.06.2017 13:09

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

Набрал пример верстки с обработчиками.
Скажите, пожалуйста, как сделать так, чтобы при клике по div.form не вызывался обработчик клика для div.wrap?

ksa 02.06.2017 13:13

Цитата:

Сообщение от borus
как сделать так, чтобы при клике по div.form не вызывался обработчик клика для div.wrap?

Как вариант...
https://jsfiddle.net/eusexwd6/11/

borus 02.06.2017 13:19

спасибо!

borus 02.06.2017 14:44

Цитата:

Сообщение от ksa (Сообщение 454241)
Как вариант...
https://jsfiddle.net/eusexwd6/11/

если воспользоваться вашим вариантом блокировки, и форма будет такой, с кнопкой input типа submit(кнопка "Купить" внизу формы), то return false для обработчика нажатия на форму с id=#contactForm_oneclick1 не остановит ли отправку данных формы скрипту-приемнику?

ksa 02.06.2017 15:27

borus, если в обработчике submit вернуть false - форма не отправится. :no:

borus 02.06.2017 15:39

Цитата:

Сообщение от ksa (Сообщение 454258)
borus, если в обработчике submit вернуть false - форма не отправится. :no:

а я возвращаю false не в обработчике клика по кнопке submit, а в обработчике клика по форме с этими кнопками.
Как тогда надо изменить ваш javascript, чтобы форма таки отправила данные, но и обработчик клика для обертки #wrap не сработал после нажатия на кнопку Купить или куда-то на всплывающую форму?

ksa 02.06.2017 15:51

borus, пример тестовый сделай. Т.к. пока не понятно в чем собственно проблема... :-?

borus 02.06.2017 16:51

Цитата:

Сообщение от ksa (Сообщение 454266)
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 03.06.2017 10:37

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

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


Часовой пояс GMT +3, время: 04:22.