Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Использовать live? (https://javascript.ru/forum/jquery/15634-ispolzovat-live.html)

namez 07.03.2011 10:27

Использовать live?
 
Привет всем!

Подскажите как сделать append к элементу который был добавлен тоже динамически в dom, через after

то есть дано:

$(function (){
$(".slideBlock").after("<div class=\"centerBlock slidePage\"><div class=\"wrap\"><div class=\"center\"><img src=\"/img/ctrlLeft.png\" widht=28 height=35 class=ctr><ul class=\"reset slidePages\"></ul><img src=\"/img/ctrlRight.png\" widht=26 height=35 class=ctr></div></div></div>");
});



Нужно сделать нечто такое для контейнера .slidePages который выше был добавлен через after:


$(function (){

$('.slidePages').append('<li>1</li>');

});



Не пашет. Я так понимаю надо заюзать jquery.live() но как правильно?

monolithed 07.03.2011 12:07

Цитата:

Сообщение от namez
jquery.live()

лучше использовать delegate

в вашем случае все проще:
<script src="http://code.jquery.com/jquery-1.5.js" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
     $('.foo').after('<div class="bar" />');
	 $('.bar').append('<p>text</p>');
});
</script>

<div class="foo"></div>

namez 07.03.2011 12:56

Цитата:

Сообщение от monolithed (Сообщение 95406)
лучше использовать delegate

в вашем случае все проще:
<script src="http://code.jquery.com/jquery-1.5.js" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
     $('.foo').after('<div class="bar" />');
	 $('.bar').append('<p>text</p>');
});
</script>

<div class="foo"></div>


я понял, но у меня один вызов в шаблоне идет а другой в общем скрипте. я поэтому и написал два разных $(function() {
что-то не работает..

.delegate() посмотрю спасибо

Matre 07.03.2011 13:27

namez

В after у Вас slidePage, а в append — slidePages. Будьте внимательнее.

live/delegate Вам никак не поможет, эти два метода навешивают обработчики событий на добавленные элементы, а не осуществляют доступ к ним.

namez 10.03.2011 15:35

Цитата:

Сообщение от Matre (Сообщение 95422)
namez

В after у Вас slidePage, а в append — slidePages. Будьте внимательнее.

live/delegate Вам никак не поможет, эти два метода навешивают обработчики событий на добавленные элементы, а не осуществляют доступ к ним.

нет именно slidePages это ul -)) а без s родит контейнер
<ul class=\"reset slidePages\"></ul>

всем спасибо, получилось с помощью $(window).load -)


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