Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.04.2009, 21:15
yukazerg23
 
Сообщений: n/a

В чем проблема? скрипт по удалению фото... :(
вот код HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<title>test</title>
		<link rel="stylesheet" type="text/css" href="css/main.css" />
		<script src="js/jquery.js" type="text/javascript"></script>
		<script src="js/function.js" type="text/javascript"></script>
	</head>
	<body>
		<div>
			<div class="head">
			<span id="span4" class="a">TEST</span>
			<span id="span8" class="a">add</span>
		</div>
			<div class="body" style="clear:both;">
				<div id="div1" style="display: block;" class="item div"></div>
			</div>
		</div>
	</body>
</html>


вот код jQ в которой есть ошибка
$(function() {
	$("#div1").append("<img class=\"delete\"/>");
	$("#span4").mouseout(function() {
		var img = $("img");
		img.attr("src", "i/test.jpg");
		return false;
	});
	$(".delete").click( function() {
		$(this).remove(); 
		return false;
	});
	$("#span8").click(function() {
		$("#div1").append("<img class=\"delete\"/>");
		return false;
	});
});



когда я навожу на кнопку TEST то появляется картинка.
потом я щелкаю на картинку и тег img удаляется.
потом я щелкаю на кнопку add два раза и появляются два тега img.
потом я навожу на кнопку TEST то появляются две картинки.

нажимаем на любую картинку и событие должно сработать только на той картинке на которую мы щелкнули. но оно не работает.

в чем ошибка?

для удобства вот Вам ссылка. img
Ответить с цитированием
  #2 (permalink)  
Старый 28.04.2009, 00:52
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

твои предположения по поводу работы скрипта называютс event delegation (поищи к плагины к jQuery) либо нужно каждый раз после создания картинки назначать ей обработчик
Ответить с цитированием
  #3 (permalink)  
Старый 29.04.2009, 10:25
Интересующийся
Отправить личное сообщение для czar Посмотреть профиль Найти все сообщения от czar
 
Регистрация: 08.04.2009
Сообщений: 25

есть такая замечательная функция как live() в версии джейквери с 1.3.2 вроде бы.
http://docs.jquery.com/Events/live
в этом случае:
$(".delete").live("click", function(){
  $(this).remove();
return false;

});

по идее должно работать.
Ответить с цитированием
Ответ



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

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