Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.11.2010, 10:42
Новичок на форуме
Отправить личное сообщение для HETmozgov Посмотреть профиль Найти все сообщения от HETmozgov
 
Регистрация: 04.11.2010
Сообщений: 7

После выполнения операции скрипт перестает работать
Приветствую всех

Есть сайт http:// fetr.me/ products-page/example-category/chexol-dlya-iphone-3ggs/

В ссылке есть пробелы (дабы не была она ссылкой) и это ссылка сразу на товар, чтоб сразу можно было увидеть суть проблемы.

При клике на товар в корзине плавно появляется описание товара.
После добавления товара в корзину данный процесс не запускается...
И работает это всплывание только после обновления страницы.

Вопрос 1: какой командой jquery можно перезагрузить страницу?

Я понимаю что решение вопроса 1 - это не есть хорошее решение (нагрузка на сервер и т.д. и т.п.). Из это следует:

Вопрос 2: может кто подсказать из-за чего такой косяк происходит - после добавления товара функционал jquery обрубается.

Jquery 1.4.2.

Код выводящий описание при клике на картинку в корзине:

$j(".tovars_wrapper img.product_image").click(function() {
		if($j(this).next().is(":hidden")){ //если уже не открыт то закрываем все и открываем текущий
			$j(".tovars_wrapper .tovar_info").fadeOut("fast");
			$j(this).next().fadeIn("slow");
		}		
		else{
			$j(this).next().fadeOut("slow");
		}
	});
Ответить с цитированием
  #2 (permalink)  
Старый 04.11.2010, 13:32
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,566

Из-за этой строки
$j(".tovars_wrapper .tovar_info").fadeOut("fast");

нормально вначале вообще не работает.

Скорее всего вы не знаете что анимация идет параллельно, а не ждет выполнения предыдущей(если специально не указывать).

Совет:Обратите внимание на 2-й параметр функции fadeOut.
Ответить с цитированием
  #3 (permalink)  
Старый 04.11.2010, 13:54
Новичок на форуме
Отправить личное сообщение для HETmozgov Посмотреть профиль Найти все сообщения от HETmozgov
 
Регистрация: 04.11.2010
Сообщений: 7

Спасибо за замечание.

Действительно не знал...

Исправил:
$j(".tovars_wrapper img.product_image").click(function() {
		if($j(this).next().is(":hidden")){ //если еще не открыт то закрываем все и открываем текущий
			var my_this = $j(this);
			$j(".tovars_wrapper .tovar_info").fadeOut("fast", function(){
				$j(my_this).next().fadeIn("slow");			
			});
		}		
		else{
			$j(this).next().fadeOut("slow");
		}
	});


Эффекта ноль.

А о том что не работает изначально - так я об этом и писал. Работает только после обновления страницы. А после добавления товара в корзину не работает опять же до перезагрузки. Получа6ется при добавлении товара что-то "перекрывает кислород" для моего скрипта. Вот и есть 2 решения либо найти что перекрывает либо просто перегружать страницу при каждом добавлении товара.
Ответить с цитированием
  #4 (permalink)  
Старый 04.11.2010, 14:13
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,566

вместо click
$j(".tovars_wrapper img.product_image").click(....

Используйте live:
$j(".tovars_wrapper img.product_image").live('click', function(){...
Ответить с цитированием
  #5 (permalink)  
Старый 04.11.2010, 15:35
Новичок на форуме
Отправить личное сообщение для HETmozgov Посмотреть профиль Найти все сообщения от HETmozgov
 
Регистрация: 04.11.2010
Сообщений: 7

Помогло

Огромное спасибо.

Теперь просьба - если не затруднит объясните, пожалуйста, разницу - принципиально в двух словах.
Ответить с цитированием
  #6 (permalink)  
Старый 04.11.2010, 16:07
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,566

click - существующим в момент назначения элементам DOM определяются обработчики.
live - создается общий слушатель, который определяет на ком произошло событие, и ему выполняет обработчик.
Ответить с цитированием
  #7 (permalink)  
Старый 04.11.2010, 18:06
Новичок на форуме
Отправить личное сообщение для HETmozgov Посмотреть профиль Найти все сообщения от HETmozgov
 
Регистрация: 04.11.2010
Сообщений: 7

Понял. Спасибо.
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему скрипт срабатывает только после обновления страницы? Randomizer jQuery 2 01.09.2010 19:01
После первого действия скрипт перестает работать cyberx jQuery 6 12.06.2010 22:04
перестает работать lightbox после .load(); toha.chan jQuery 1 14.04.2010 16:37
Как запустить скрипт после отработки другого скрипта? roman2 Общие вопросы Javascript 2 10.08.2009 01:23
разное время выполнения операции ropowek Events/DOM/Window 2 08.10.2008 13:27