Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.12.2013, 15:07
Аспирант
Отправить личное сообщение для housewm Посмотреть профиль Найти все сообщения от housewm
 
Регистрация: 21.12.2010
Сообщений: 41

Добавление класса 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");
});


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

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

Последний раз редактировалось housewm, 28.12.2013 в 15:22.
Ответить с цитированием
  #2 (permalink)  
Старый 28.12.2013, 15:20
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от housewm
но ничего не происходит
Бивас, тест! (с)

<!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>

У меня все работает...
Ответить с цитированием
  #3 (permalink)  
Старый 28.12.2013, 15:22
Аспирант
Отправить личное сообщение для housewm Посмотреть профиль Найти все сообщения от housewm
 
Регистрация: 21.12.2010
Сообщений: 41

немного отредактировал вопрос
Ответить с цитированием
  #4 (permalink)  
Старый 28.12.2013, 15:25
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от housewm
если элемент прописать в статично то на него скрипт действует, а вот на новый появившейся нет.
Потому как на нем нет обработчика.
Нужно:
- либо подвешивать обработчик после добавления нового элемента
- либо делегировать событие для элементов
Ответить с цитированием
  #5 (permalink)  
Старый 28.12.2013, 15:29
Аспирант
Отправить личное сообщение для housewm Посмотреть профиль Найти все сообщения от housewm
 
Регистрация: 21.12.2010
Сообщений: 41

подвешиваем обработчик после добавления нового элемента с помощью .load()?
Ответить с цитированием
  #6 (permalink)  
Старый 28.12.2013, 15:36
Аспирант
Отправить личное сообщение для housewm Посмотреть профиль Найти все сообщения от housewm
 
Регистрация: 21.12.2010
Сообщений: 41

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

спасибо за наводку
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Действие после клика мыши 1n3gan jQuery 2 06.11.2013 15:11
Задержка после присвоения класса в jQuery surzhikov jQuery 1 05.10.2011 03:29
Проверка на наличие класса до или после элемента. doniv jQuery 2 23.08.2011 23:03
функция внутри Live() срабатывает после второго клика Ad1r jQuery 7 09.08.2011 14:11
Не убирать кнопку после клика по ней. CompModdd jQuery 2 12.05.2009 02:13