Просмотр полной версии : После функции 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();
});
});
СПасибо за совет, но так тоже не работает. Да и хотелось бы вообще fadeOut сделать, но так тоже не работает.
Вы вешаете событие до того как элемент был добавлен на страницу.
Попробуйте так:
$(document).ready(function() {
 
$('.elem').click(function(){
    $('#itog').append('<div class="work">надпись</div>');
    $('.work').click(function(){
         $(this).hide();
    });
});
});
Вы вешаете событие до того как элемент был добавлен на страницу.
Вот теперь работает все! Спасибо большое!
При многократном нажатии 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');
  });
});
Не работают... Ни тот ни другой  :(
$(function() {
	$('.elem').click(function() {
		if (!$(this).has('.work').length)
			$('<div class="work">Work</div>').appendTo('.elem');
	});
	$('.work').live('click', function() {
		$(this).hide();
	});
});
Работает!  :)
$(this).hide();
видимо лучше заменить на 
$(this).remove();
Спасибо!
vBulletin® v3.6.7, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot