Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Не срабатывает обработчик Click на ссылку. (https://javascript.ru/forum/events/77523-ne-srabatyvaet-obrabotchik-click-na-ssylku.html)

AlexanderB 16.05.2019 12:08

Не срабатывает обработчик Click на ссылку.
 
Добрый день!

Бодаюсь с такой проблемой.

Вешаю на ссылку обработчик клика.

<div id="bckgnd">
	<div class="slides">
		<div id="slide1" class="show_slide_left">
			<a href="#"><img src="img/about1.png"></a>
		</div>
	</div>
</div>


linkObj = $('#bckgnd .slides div a');
linkObj.click(function(e){
	e.preventDefault();
	console.log("preventDefault");
	return false;
});


Обработчик не вызывается. Применяю другую запись селектора.

linkObj = $('#bckgnd div div a');
linkObj.click(function(e){
	e.preventDefault();
	console.log("preventDefault");
	return false;
});


Так обработчик вызывается. Объект находится в обоих вариантах.
Проверил в отладчике первый вариант. В переменной linkObj объект ссылки лежит с записанной ссылкой на обработчик, как и положено.
Почему не вызывается обработчик в первом варианте?

рони 16.05.2019 12:20

Цитата:

Сообщение от AlexanderB
Обработчик не вызывается. Применяю другую запись селектора.

:-? вы что - то не договариваите
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">

  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

  <script>
$(function() {
linkObj = $('#bckgnd .slides div a');
linkObj.click(function(e){
	e.preventDefault();
	console.log("preventDefault");
    alert("preventDefault");
	return false;
});

});
  </script>
</head>

<body>
<div id="bckgnd">
	<div class="slides">
		<div id="slide1" class="show_slide_left">
			<a href="#"><img src="https://www.mikehourigan.com/wp-content/uploads/2011/08/About-Mike-Hourigan.jpg"></a>
		</div>
	</div>
</div>

</body>
</html>

Malleys 16.05.2019 12:20

Работают оба варианта, проверил с https://cdnjs.cloudflare.com/ajax/li.../jquery.min.js

AlexanderB 16.05.2019 13:13

Разобрался. Забыл, что блоки из .clides динамически перемещаются в другой контейнер и туда уже вешается обработчик.


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