Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Добавление класса div'у после клика по нему (https://javascript.ru/forum/events/43963-dobavlenie-klassa-div%27u-posle-klika-po-nemu.html)

housewm 28.12.2013 15:07

Добавление класса div'у после клика по нему
 
с периодичностью на странице добавляется элемент

такого вида:
<a target="_blank" href="http://">
    <div class="ads">F/Time or P/time GP Required</div>
</a>

ссылка и текст всегда разные

при нажатии по диву открывается новая вкладка
с помощью jquery делаю чтобы после клика по диву .ads к нему добавлялся класс .border

$(".ads").click(function(){
    $(this).addClass("border");
});


но ничего не происходит, не могу понять в чем дело, вроде все правильно написал.

самое странное что если элемент прописать в статично то на него скрипт действует, а вот на новый появившейся нет.

ksa 28.12.2013 15:20

Цитата:

Сообщение от housewm
но ничего не происходит

Бивас, тест! (с) :D

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<!--
<link rel="stylesheet" type="text/css" href="tmp.css" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
-->
<style type="text/css">
.border {
	border: 1px solid;
}
</style>
<script type="text/javascript">
$(function (){
	$(".ads").click(function(){
		$(this).addClass("border");
	});
});
</script>
</head>
<body>
<a target="_blank" href="http://">
    <div class="ads">F/Time or P/time GP Required</div>
</a>
</body>
</html>

У меня все работает...

housewm 28.12.2013 15:22

немного отредактировал вопрос

ksa 28.12.2013 15:25

Цитата:

Сообщение от housewm
если элемент прописать в статично то на него скрипт действует, а вот на новый появившейся нет.

Потому как на нем нет обработчика.
Нужно:
- либо подвешивать обработчик после добавления нового элемента
- либо делегировать событие для элементов

housewm 28.12.2013 15:29

подвешиваем обработчик после добавления нового элемента с помощью .load()?

housewm 28.12.2013 15:36

получилось через .live()

спасибо за наводку


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