@Zubastik_1

По клику на контейнер переходим по ссылке (переход сделан на js), но как это отменить?

Есть контейнер по клику на который переходим по ссылке, вот код jQuery:
$('body').on('click', '.myclass', function(e){
        document.location.href = 'index.html';

Проблема в том что в этом контейнере есть кнопка которая вызывает модальное окно. Как сделать так чтоб при нажатии на эту кнопку не отрабатывал переход по ссылке? То есть конструкция такая:
<container class="myclass"><a href="#modal" class='button">Кнопка</a></container>
  • Вопрос задан
  • 606 просмотров
Решения вопроса 3
KickeRocK
@KickeRocK
FrontFinish
$('.myclass a').click(function (e) {
e.preventDefault();
});

Или я что-то не так понял?
Ответ написан
Комментировать
0xD34F
@0xD34F Куратор тега JavaScript
Проверяйте, где был клик:

$('body').on('click', '.myclass', function(e) {
  if (!$(e.target).hasClass('button')) {
    document.location.href = 'index.html';
  }
});

Или останавливайте всплытие событий при клике на кнопку:

$('.button').on('click', e => e.stopPropagation());
Ответ написан
Комментировать
@pilolin
HTML программист
Вариантик еще
$('body').on('click', '.myclass', function(e){
	if(!($('.button').is(e.target)))
		document.location.href = 'index.html';
})
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы