Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   После функции append удалить элемент который появился (https://javascript.ru/forum/jquery/17067-posle-funkcii-append-udalit-ehlement-kotoryjj-poyavilsya.html)

shaltay 04.05.2011 19:13

После функции append удалить элемент который появился
 
Доброго времени.
Есть скрипт:
$(document).ready(function() {

$('.elem').click(function(){
	$('#itog').append('<div class="work">надпись</div>');
});

$('.work').click(function(){
	$(this).hide();
});	

});


Но этот код не работает. Дивы появляются, но уже не удаляются. В чем дело?
Заранее спасибо!

ASerputko 04.05.2011 19:26

Используй $(this).remove();
вместо $(this).hide();

$(document).ready(function() {
$('.elem').click(function(){
	$('#itog').append('<div class="work">надпись</div>');
});
$('.work').click(function(){
	$(this).remove();
});
});

shaltay 04.05.2011 19:46

СПасибо за совет, но так тоже не работает. Да и хотелось бы вообще fadeOut сделать, но так тоже не работает.

walik 04.05.2011 19:48

Вы вешаете событие до того как элемент был добавлен на страницу.
Попробуйте так:
$(document).ready(function() {
 
$('.elem').click(function(){
    $('#itog').append('<div class="work">надпись</div>');
    $('.work').click(function(){
         $(this).hide();
    });
});
});

shaltay 04.05.2011 19:54

Цитата:

Сообщение от walik (Сообщение 103331)
Вы вешаете событие до того как элемент был добавлен на страницу.

Вот теперь работает все! Спасибо большое!

kalina 06.06.2011 13:59

Дублирование Append
 
При многократном нажатии Append дублируется. Как этого избежать?
Прошу помощи...

nikita.mmf 06.06.2011 15:20

1-ый способ:
$(document).ready(function() {
  $('#itog').delegate(".work", "click", function( e ){
    $(e.currentTarget).hide();
  });
  $('.elem').click(function(){
    $('#itog').append('<div class="work">надпись</div>');
  });
});

2-ой способ:
$(document).ready(function() {
  $('.elem').click(function(){
    $('<div class="work">надпись</div>')
      .click(funcion(){$(this).hide();})
      .appendTo('#itog');
  });
});

kalina 06.06.2011 18:18

Не работают... Ни тот ни другой :(

walik 06.06.2011 18:45

$(function() {
	$('.elem').click(function() {
		if (!$(this).has('.work').length)
			$('<div class="work">Work</div>').appendTo('.elem');
	});
	$('.work').live('click', function() {
		$(this).hide();
	});
});

kalina 07.06.2011 16:19

Работает! :)
$(this).hide();

видимо лучше заменить на
$(this).remove();

Спасибо!


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