Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.03.2010, 22:08
Аспирант
Отправить личное сообщение для igsavenko Посмотреть профиль Найти все сообщения от igsavenko
 
Регистрация: 15.01.2010
Сообщений: 83

Почему событие срабатывает один раз?
Здравствуйте. Суть такая, кликаем по картинке, которая сгенерирована при помощи библиотеки GD2, на изображении надпись, надпись зависит от кода который передаем в скрипт.
После клика вызываем следующую функцию:
Данная функция делает запрос на генерацию нового ключа, от которого как раз зависит картинка.
$(document).ready(function() {
	$('#new_code').click(new_code);
	function new_code()
	{
		alert(1);
		//Получить новый код из php скрипта
		$.ajax({
      		url: "gen_pass_ajax.php",
      		global: false,
			type: "POST",
      		beforeSend: function(){
				//тут можно что-нибудь показать пока идет обмен информацией
      			return true;
      		},
      		dataType: "json",
      		success: function (data)
			{
				if(data.success == true)
				{
					$('#code_div').html("<img title='БРРРРРРР' border='0' src='generate_pic_class.php?code="+data.result+"' align='absmiddle' id = 'new_code'></img>").fadeIn();
					return true;
				}
			}
		});
	}
});

В случае успеха изменяем содержимое div в котором расположена картинка, то есть саму картинку. alert(1) поставил специально посмотреть когда срабатывает событие. Первый раз функция отрабатывает отлично, но при втором нажатии ничего не происходит alert(1) не срабатывает, в чем может быть проблема?
И еще вопрос как сделать так чтобы ограничить пользователя в нажатии на изображение, то есть не более 5 раз например! Просто завести глобальный счетчик?

Последний раз редактировалось igsavenko, 02.03.2010 в 22:25.
Ответить с цитированием
  #2 (permalink)  
Старый 02.03.2010, 22:33
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 03.04.2008
Сообщений: 6,233

вы удаляете старую картинку, и делаете новую
с чего бы срабатывать событию, которое было повешено на уже несуществующий элемент, при клике на новый элемент?
Ответить с цитированием
  #3 (permalink)  
Старый 02.03.2010, 22:36
Аспирант
Отправить личное сообщение для igsavenko Посмотреть профиль Найти все сообщения от igsavenko
 
Регистрация: 15.01.2010
Сообщений: 83

почитал документацию и пришел к этой функции:
$("#new_code").live("click", new_code);

Все хорошо работает!

Сразу еще вопрос в до гонку, еще в форме есть input type = 'hidden', как заменить его значение value. Извините за банальные вопросы я просто совсем новичек Учусь только

Последний раз редактировалось igsavenko, 02.03.2010 в 22:41.
Ответить с цитированием
  #4 (permalink)  
Старый 03.03.2010, 00:14
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

элемент.value = "42"
Если в jQ:
$("input[name=моёкакоетоимяэлемента]", элемент_form).val("новое значение")

Последний раз редактировалось subzey, 03.03.2010 в 00:17.
Ответить с цитированием
  #5 (permalink)  
Старый 03.03.2010, 00:58
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 03.04.2008
Сообщений: 6,233

Сообщение от igsavenko
почитал документацию и пришел к этой функции:
$("#new_code").live("click", new_code);
Все хорошо работает!
и дполнительная нагрузка как бонус.
этот метод отслеживает все происходящие события на странице, и обрабатывает их.
это коненчо не mousemove, где можно просто захлебнутся, но все же это лишнее

вешайте обработчик события на новосозданный элемент
Ответить с цитированием
  #6 (permalink)  
Старый 03.03.2010, 06:11
Аспирант
Отправить личное сообщение для igsavenko Посмотреть профиль Найти все сообщения от igsavenko
 
Регистрация: 15.01.2010
Сообщений: 83

Всем большое спасибо!
Ответить с цитированием
  #7 (permalink)  
Старый 03.03.2010, 08:26
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Gvozd, с 1.4. Уже не на странице, а в контексте. Но нагрузка все есть, конечно же.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чтоб ссылка появлялась один раз для каждого пользователя (по IP или Cookies) Sequoia Общие вопросы Javascript 2 28.01.2010 18:16
Почему не срабатывает innerHTML? БВИ Internet Explorer 1 02.01.2009 18:00