Перейти к содержимому


Не Меняется Цена При Изменении Модификации И Количества Товара

цена модификации

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 3

#1 Juliannika

Juliannika

    Новичок

  • Пользователи
  • Pip
  • 9 сообщений

Отправлено 11 Ноябрь 2014 - 15:19

Помогите пожалуйста! не меняется цена при изменении модификации и количества товара! Заранее благодарю!

#2 Dars

Dars

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 1 410 сообщений

Отправлено 12 Ноябрь 2014 - 12:16

Просмотр сообщенияJuliannika (11 Ноябрь 2014 - 15:19) писал:

Помогите пожалуйста! не меняется цена при изменении модификации и количества товара! Заранее благодарю!
Здравствуйте!
Согласно какой инструкции вы изменяли вывод списка модификаций?

#3 Juliannika

Juliannika

    Новичок

  • Пользователи
  • Pip
  • 9 сообщений

Отправлено 12 Ноябрь 2014 - 23:24

пыталась частично по этой но у меня не вышло  - http://forum.storela...ий-модификации/
и еще у меня шаблон вечность( я немного ошиблась :wacko: )   помогите пожалуйста разобраться..


$(function() {
  var wi = $(window).width();
  if(wi < 768) {
   if ($(".filter").length < 2)
	  {
		$(".filters").css({"float" : "none", "clear" : "both"});
		$(".filter").css({"margin" : "0 auto", "width" : "215px", "display" : " block", "padding" : "15px 0 0"});
	  }
  }
	$(window).resize(function() {
	  var w = $(window).width();
	 if(w < 768) {
	 if ($(".filter").length < 2)
		{
		  $(".filters").css({"float" : "none", "clear" : "both"});
		  $(".filter").css({"margin" : "0 auto", "width" : "215px", "display" : " block", "padding" : "15px 0 0"});
		}
	 }
	  else
	  {
		$(".filters").removeAttr('style');
	  }
	});
});
//Увеличение изображения товара
$(document).ready(function() {
$("a[rel=group]").fancybox({
  'transitionIn'  : 'none',
  'transitionOut'  : 'none',
  'titlePosition'  : 'over',
  'titleFormat'  : function(title, currentArray, currentIndex, currentOpts) {
   return '<span id="fancybox-title-over">Image ' + (currentIndex + 1) + ' / ' + currentArray.length + (title.length ? ' &nbsp; ' + title : '') + '</span>';
  }
});
});
$(function(){
  var $container2 = $('.containers2');
  // Минимальное расстояние между товарами в каталоге
  $container2.imagesLoaded(function(){
	$container2.masonry({
	  itemSelector: '.items',
	  // указываем класс элемента являющегося блоком в нашей сетке
	  singleMode: false,
	  // true - если у вас все блоки одинаковой ширины
	  isResizable: true,
	  // перестраивает блоки при изменении размеров окна
	  isAnimated: true,
	  // Ужиматься до минимальной ширины, чтобы можно было центрировать блок
	  isFitWidth: true,
	  // анимируем перестроение блоков
	  animationOptions: {
		queue: false,
		duration: 500
	  }
	  // опции анимации - очередь и продолжительность анимации
	});
  });
});
$(function(){
  var
	$container3 = $('.containers3')
	,lastPage3 = 1
	// Количество страниц
	,pagesNum3 = $("div.pagination").find("a:last").text();
 
  $container3.infinitescroll({
	navSelector  : '.pagination',	// класс элемента постраничной навигации
	nextSelector : '.pagination a',  // класс элемента постраничной навигации, ссылка на следующую страницу
	itemSelector : '.items',	 // класс элементов, которые будем извлекать
	loading: {
		msgText: 'Пожалуйста подождите...',
		finishedMsg: 'Больше нет товаров.',
		img: infiniteScrollLoaderPath ? infiniteScrollLoaderPath : '/loader.gif'
	  }
	},
	function( newElements3 ) {
	  // скрываем новые элементы, пока они не загрузятся
	  var $newElems3 = $( newElements3 ).css({ opacity: 0 });
	  // обеспечиваем загрузку изображением перед добавление из на страницу
	  $newElems3.imagesLoaded(function(){
		// показываем готовые элементы
		$newElems3.animate({ opacity: 1 });
		$container3.masonry( 'appended', $newElems3, true );
	  });
	  lastPage3++;
	  // если это последняя страница
	  if(lastPage3 >= pagesNum3){
		  $container3.infinitescroll('pause');
	  }
	}
  ); 
});
//Кнопка "ВВЕРХ"
$(function() { 
  $.fn.scrollToTop = function() {  
	$(this).hide().removeAttr("href");  
	if ($(window).scrollTop() >= "250")
	  $(this).fadeIn("slow")  
	var scrollDiv = $(this);  
	$(window).scroll(function() {   
	  if ($(window).scrollTop() <= "250")
		$(scrollDiv).fadeOut("slow")   
	  else
		$(scrollDiv).fadeIn("slow")  
	});  
	$(this).click(function() {   
		$("html, body").animate({scrollTop: 0}, "slow")  
	  })	  
  } 
});
$(function() { 
  $("#Go_Top").scrollToTop();
});
//Верхнее меню
$(function() {
var pull   = $('#pull');
  menu   = $('.head ul');
  menuHeight = menu.height();
$(pull).on('click', function(e) {
  e.preventDefault();
  menu.slideToggle();
});
$(window).resize(function(){
  var w = $(window).width();
  if(w > 620 && menu.is(':hidden')) {
   menu.removeAttr('style');
  }
});
});
//Меню Каталог
$(function() {
  var ww = document.body.clientWidth;
  $(document).ready(function() {
	$(".conta > ul").addClass("nav");
	$(".nav li a").each(function() {
	if ($(this).next().length > 0) {
	 $(this).addClass("parent");
	};
   })
  
   $(".toggleMenu").click(function(e) {
	e.preventDefault();
	$(this).toggleClass("active");
	$(".nav").toggle();
   });
   adjustMenu();
  })
 
  $(window).bind('resize orientationchange', function() {
   ww = document.body.clientWidth;
   adjustMenu();
  });
  var adjustMenu = function() {
   if (ww < 768) {
	$(".toggleMenu").css("display", "block");
	if (!$(".toggleMenu").hasClass("active")) {
	 $(".nav").hide();
	} else {
	 $(".nav").show();
	}
	$(".nav li").unbind('mouseenter mouseleave');
	$(".nav li span.icons").unbind('click').bind('click', function(e) {
	 // Необходимоо привязать к элементу ссылки для предотвращения "всплывания"
	 e.preventDefault();
	 $(this).parent("li").toggleClass("hover");
	});
   } else if (ww >= 768) {
	$(".toggleMenu").css("display", "none");
	$(".nav").show();
	$(".nav li").removeClass("hover");
	$(".nav li a").unbind('click');
	$(".nav li").hover(
		function () {
		  $(this).addClass("hover");
		},
		function () {
		  $(this).removeClass("hover");
		}
	  );
   }
  }
});
// Инициализация табов на странице товара
function initTabs() {
  // Блок в котором находятся табы
  var tabBlock = $('.tabbed_area');
  if(!tabBlock.length) {
	return false;
  }
  // По умолчанию делаем отметку о том что активного таба не найдено
  var isFind = 0;
  tabBlock.find('.tabs li > a').each(function(i){
	// Если нашёлся активный там
	if($(this).hasClass('active')) {
	  // Инициализируем найденный таб
	  $(this).click();
	  // Ставим отметку, о том что не нужно инициализировать первый таб на странице
	  isFind = 1;
	}
  });
  // Если не найдено ни одного таба с отметкой о том что он активен
  if(!isFind) {
	// Ставим активным первый таб на странице.
	tabSwitch(1);
  }
  // Проверяет хэш и если по нему была открыта вкладка, то эта функция автоматически откроет её.
  checkTabHash();
  // Биндим изменение хэша - проверка какой FAQ вопрос нужно открыть.
  $(window).bind('hashchange', function() { checkTabHash(); });
}
// Проверяет хэш, переданый пользователем и открывает соответствующий раздел
function checkTabHash() {
  // Определяем текущий хэш страницы
  var hash = window.location.hash.substr(1);
  if(hash == 'goodsDataOpinionAdd') {
	// $('#goodsDataOpinionAddBlock').show('blind');
	return false;
  }
  if(!hash.length || hash.indexOf('show_tab_') == -1) {
	return false;
  }
  // Открываем тот таб, который был указан в hash-е
  tabSwitch(hash.replace("show_tab_", ''))
}
// Выбор вкладки на странице товара
function tabSwitch(nb) {
  var tabBlock = $('.tabbed_area');
  tabBlock.find('.tabs li > a').removeClass('active');
  tabBlock.find('div.content').hide();
  $('#tab_' + nb).addClass('active');
  $('#content_' + nb).show();
  // Записываем в хэш информацию о том какой таб сейчас открыт, для возможности скопировать и передать ссылку с открытым нужным табом
  document.location.hash = "#show_tab_" + nb;
}
// Инициализируем табы на странице
$(function() { initTabs(); });
// Форматирует цену
function number_format(number,decimals,dec_point,thousands_sep){var n=number,prec=decimals;var toFixedFix=function(n,prec){var k=Math.pow(10,prec);return(Math.round(n*k)/k).toString();};n=!isFinite(+n)?0:+n;prec=!isFinite(+prec)?0:Math.abs(prec);var sep=(typeof thousands_sep==='undefined')?',':thousands_sep;var dec=(typeof dec_point==='undefined')?'.':dec_point;var s=(prec>0)?toFixedFix(n,prec):toFixedFix(Math.round(n),prec);var abs=toFixedFix(Math.abs(n),prec);var _,i;if(abs>=1000){_=abs.split(/\D/);i=_[0].length%3||3;_[0]=s.slice(0,i+(n<0))+
_[0].slice(i).replace(/(\d{3})/g,sep+'$1');s=_.join(dec);}else{s=s.replace('.',dec);}
var decPos=s.indexOf(dec);if(prec>=1&&decPos!==-1&&(s.length-decPos-1)<prec){s+=new Array(prec-(s.length-decPos-1)).join(0)+'0';}
else if(prec>=1&&decPos===-1){s+=dec+new Array(prec).join(0)+'0';}
return s;}
// Превращает поле пароля в текстовое поле и обратно
// @LinkObject - ссылка по которой кликнули
// @InputObject - объект у которого нужно изменить тип поля
function ChangePasswordFieldType (LinkObject, InputObject) {
  var
	// Ссылка по которой кликнули
	LObject = $(LinkObject),
	// Объект у которого изменяем тип с password на text
	IObject = $(InputObject),
	// Старый текст ссылки
	txtOld = LObject.text(),
	// Новый текст ссылки
	txtNew = LObject.attr('rel');
  // Если объекты не получены, завершим работу функции
  if( LObject.length==0 || IObject.length==0 ) {
	return false;
  }
  // Изменяем у ссылки текст со старого на новый
  LObject.html(txtNew);
  // Старый текст ссылки сохраняем в атрибуте rel
  LObject.attr('rel', txtOld);
  // Изменяем тип input поля
  if(IObject[0].type == 'text') {
	IObject[0].type = 'password';
  } else {
	IObject[0].type = 'text';
  }
}
// Крутит изображение при обновлении картинки защиты от роботов
function RefreshImageAction(img,num,cnt) {
  if(cnt>13) {
	return false;
  }
  $(img).attr('src', $(img).attr('rel') + 'icon/refresh/' + num + '.gif');
  num = (num==6)?0:num;
  setTimeout(function(){RefreshImageAction(img, num+1, cnt+1);}, 50);
}

// Быстрый заказ
function quickorder(formSelector) {
  // Находим форму, которую отправляем на сервер, для добавления товара в корзину
  var formBlock = $($(formSelector).get(0));
  // Проверка на существование формы отправки запроса на добавление товара в корзину
  if(1 > formBlock.length || formBlock.get(0).tagName != 'FORM') {
	alert('Не удалось найти форму добавления товара в корзину');
	return false;
  }
 
  // Получаем данные формы, которые будем отправлять на сервер
  var formData = formBlock.serializeArray();
  // Сообщаем серверу, что мы пришли через ajax запрос
  formData.push({name: 'ajax_q', value: 1});
  // Так же сообщим ему, что нужно сразу отобразить форму быстрого заказа
  formData.push({name: 'fast_order', value: 1});
  // Аяксом добавляем товар в корзину и вызываем форму быстрого заказа товара
  $.ajax({
   type  : "POST",
  cache   : false,
  url	: formBlock.attr('action'),
  data  : formData,
  success: function(data) {
   $.fancybox({
	   content : data
		// При изменении размера окна изменяем размер окна оформления заказа
		,onUpdate  : function(){
		  var w = $(window).width()*0.8;
		 
		  if(w < 800) {
			// Автоматический ресайз внутреннего блока fancybox-а
			$('.fancybox-inner').css('width', 'auto');
			// Изменяем размер fancybox окна
			$('.fancybox-wrap').css({'width': w + 'px'});
		  } 
		  return false;
		}
   });
	 
	  setTimeout(function(){$.fancybox.update();}, 500);
  }
});
  return false;
}
 
$(document).ready(function(){
  var lenghtdelivery = document.getElementsByName('form[delivery][id]');
  for(var i=0; i < lenghtdelivery.lenght; i++)  {
	if(lenghtdelivery[i].checked) {
	  $('.payment').css("display","block");
	}
  }
 
  // Блок с информацией о том что товар добавлен в корзину
  $('.box').hide();
 
  // Добавление товара в корзину через ajax
  $('.goodsListItemCatalogueAddToCartButton, .goodsToCartFromCompareForm').submit(function(){
	// Если нужно быстро положить в корзину
	if($(this).attr('rel') == 'quick') {
	  return true;
   
	// Если нужно просто добавить в корзину и продолжить покупки
	} else {
	  $('.box').fadeIn(500);  // полсекунды, чтобы не уснуть
	  return false;
	}
  });
  // Валидация формы на странице оформления заказа, а так же формы на страницы связи с администрацией
  $("#myform, .feedbackForm, .clientForm, #quickform").validate();
  // В форме оформления заказа при клике на кнопку назад просто переходим на предыдущую страницу
  $('.order form input:submit[name="toprev"]').click(function(){
	var act = this.form.action;
	this.form.action = act + ( act.indexOf( '\?' ) > -1 ? '&' : '?' ) + 'toprev=1';
	this.form.submit();
	return false;
  });
 
  // Клик по ячейке с изображением означает клик по картинке
  $('table.product-image td').click(function(){document.location = $(this).find('a:first').attr('href');return false;});
  // Функция собирает свойства в строку, для определения модификации товара
  function getSlugFromGoodsDataFormModificationsProperties(obj) {
		var properties = new Array();
		var reset_arr = new Array();
		$(obj).each(function(i){
		  if($(this).is(':checked')){
				properties[i] = parseInt($(this).val());}
		});
		for(var i in properties) {
		 if(properties[i]) {
		  reset_arr.push(properties[i]);
		 }		
		}
	   return reset_arr.sort(function(a,B){return a - b}).join('_');
  }
  
  var
	// Запоминаем поля выбора свойств, для ускорения работы со значениями свойств
	goodsDataProperties = $('form.goodsDataForm select[name="form[properties][]"]'),
   
	// Запоминаем блоки с информацией по модификациям, для ускорения работы
	goodsDataModifications = $('div.goodsDataMainModificationsList');
 
  // Обновляет возможность выбора свойств модификации, для отключения возможности выбора по характеристикам модификации которой не существует.
  function updateVisibility (y) {
	// Проверяем в каждом соседнем поле выбора модификаций, возможно ли подобрать модификацию для указанных свойств
	goodsDataProperties.each(function(j){
	  // Если мы сравниваем значения свойства не с самим собой, а с другим списком значений свойств
	  if( j != y ) {
		// Проходим по всем значениям текущего свойства модификации товара
		$(this).find('option').each(function(){
		  // Записываем временный массив свойств, которые будем использовать для проверки существования модификации
		  var checkProperties = new Array();
		  $(goodsDataProperties).each(function(i){
			checkProperties[i] = parseInt($(this).val());
		  });
		  // Пытаемся найти модификацию соответствующую выбранным значениям свойств
		  checkProperties[j] = parseInt($(this).attr('value'));
		  // Собираем хэш определяющий модификацию по свойствам
		slug = checkProperties.sort(function(a,B){return a - b}).join('_');
		  // Ищем модификацию по всем выбранным значениям свойств товара. Если модификации нет в возможном выборе, отмечаем потенциальное значение выбора как не доступное для выбора, т.к. такой модификации нет.
		  if(!goodsDataModifications.filter('[rel="'+slug+'"]').length) {
		   $(this).attr('disabled', true);
		  // Если выбрав данное значение свойства товара можно подобрать модификацию, то выделяем вариант выбора как доступный.
		  } else {
			$(this).attr('disabled', false);
		  }
		});
	  }
	});
  }
  // Обновляем возможность выбора модификации товара по свойствам. Для тех свойств, выбор по которым не возможен, отключаем такую возможность.
  // Проверяем возможность выбора на всех полях кроме первого, чтобы отключить во всех остальных варианты, которые не возможно выбрать
  updateVisibility (0);
  // Проверяем возможность выбора на всех полях кроме второго, чтобы в первом поле так же отключилась возможность выбора не существующих модификаций
  updateVisibility (1);
 
  //var goodsDataProperties = $('.goodsDataForm [name="form[properties][]"]');
 
  // Изменение цены товара при изменении у товара свойства для модификации
  goodsDataProperties.each(function(y){
	$(this).change(function(){
	  var slug = getSlugFromGoodsDataFormModificationsProperties(goodsDataProperties),
		  modificationBlock			 = $('.goodsDataMainModificationsList[rel="'+slug+'"]'),
		  modificationId				= parseInt(modificationBlock.find('[name="id"]').val()),
		  modificationArtNumber		 = modificationBlock.find('[name="art_number"]').val(),
		  modificationPriceNow		  = parseFloat(modificationBlock.find('[name="price_now"]').val()),
		  modificationPriceNowFormated  = modificationBlock.find('.price_now_formated').html(),
		  modificationPriceOld		  = parseFloat(modificationBlock.find('[name="price_old"]').val()),
		  modificationPriceOldFormated  = modificationBlock.find('.price_old_formated').html(),
		  modificationRestValue		 = parseFloat(modificationBlock.find('[name="rest_value"]').val()),
		  modificationDescription	   = modificationBlock.find('.description').html(),
		  modificationMeasureId		 = parseInt(modificationBlock.find('[name="measure_id"]').val()),
		  modificationMeasureName	   = modificationBlock.find('[name="measure_name"]').val(),
		  modificationMeasureDesc	   = modificationBlock.find('[name="measure_desc"]').val(),
		  modificationMeasurePrecision  = modificationBlock.find('[name="measure_precision"]').val(),
		  modificationIsHasInCompareList= modificationBlock.find('[name="is_has_in_compare_list"]').val(),
		  goodsModificationId		   = $('.goodsDataMainModificationId'),
		  goodsPriceNow				 = $('.goodsDataMainModificationPriceNow'),
		  goodsPriceOld				 = $('.goodsDataMainModificationPriceOld'),
		  goodsAvailable				= $('.goodsDataMainModificationAvailable'),
		  goodsAvailableTrue			= goodsAvailable.find('.available-true'),
		  goodsAvailableFalse		   = goodsAvailable.find('.available-false'),
		  goodsArtNumberBlock		   = $('.goodsDataMainModificationArtNumber'),
		  goodsArtNumber				= goodsArtNumberBlock.find('span');
		  goodsCompareAddButton		 = $('.goodsDataCompareButton.add');
		  goodsCompareDeleteButton	  = $('.goodsDataCompareButton.delete');
		  goodsModDescriptionBlock	  = $('.goodsDataMainModificationsDescriptionBlock');
	  
	   // Изменяем данные товара для выбранных параметров. Если нашлась выбранная модификация
	   if(modificationBlock.length) {
		 // Цена товара
		 goodsPriceNow.html(modificationPriceNowFormated);
 
		 // Старая цена товара
		 if(modificationPriceOld>modificationPriceNow) {
		  goodsPriceOld.html(modificationPriceOldFormated);
		 } else {
		   goodsPriceOld.html('');
		 }
		
		 // Есть ли товар есть в наличии
		 if(modificationRestValue>0) {
		   goodsAvailableTrue.show();
		   goodsAvailableFalse.hide();
		 // Если товара нет в наличии
		 } else {
		   goodsAvailableTrue.hide();
		   goodsAvailableFalse.show();
		 }
		 // Если товар есть в списке сравнения
		 if(modificationIsHasInCompareList>0) {
		   goodsCompareAddButton.hide();
		   goodsCompareDeleteButton.show();
		 // Если товара нет в списке сравнения
		 } else {
		   goodsCompareAddButton.show();
		   goodsCompareDeleteButton.hide();
		 }
		
		 // Покажем артикул модификации товара, если он указан
		 if(modificationArtNumber.length>0) {
		   goodsArtNumberBlock.show();
		   goodsArtNumber.html(modificationArtNumber);
		 // Скроем артикул модификации товара, если он не указан
		 } else {
		   goodsArtNumberBlock.hide();
		   goodsArtNumber.html('');
		 }
		 // Описание модификации товара. Покажем если оно есть, спрячем если его у модификации нет
		 if(modificationDescription.length > 0) {
		   goodsModDescriptionBlock.show().html('<div>' + modificationDescription + '</div>');
		 } else {
		   goodsModDescriptionBlock.hide().html();
		 }
		
		
		 // Идентификатор товарной модификации
		 goodsModificationId.val(modificationId);
	   } else {
		 alert('К сожалению сейчас не получается подобрать модификацию соответствующую выбранным параметрам.');
	   }
		// Обновляем возможность выбора другой модификации для текущих значений свойств модификации товара.
		updateVisibility(y);
	});
  });
 
  // Кнопка добавления товара на сравнение товаров
  $('.goodsDataCompareButton').click(function(){
	window.location.href = $(this).attr('rel') +
	($(this).attr('rel').indexOf( '\?' ) > -1 ? '&' : '?') +
	'id='+
	$('.goodsDataMainModificationId').val()+
	'&from='+
	$('input[name="form[goods_from]"]').val();
	return false;
  });
 
  // Сравнение товаров. Увеличение изображение при клике на ссылку увеличения и открытие галереии с изображениями этого товара
  $('.CompareGoodsImageZoom').click(function(){
	// Галлерея фотографий для данной модификации товаров
	var galleryBlock = $('.galleryBlock' +  $(this).attr('rel')),
	// Главное изображение товара, которое сейчас стоит у товара
	galleryMainImage = $('.CompareGoodsImageMain' +  $(this).attr('rel')),
	// Изображение по которому нужно кликнуть в галлерее изображений
	ImageIngallery = galleryBlock.find('.CompareGoodsImageGallery'+galleryMainImage.attr('rel'));
   
	return false;
  });
 
  // Сравнение товаров. Инвертирование свойств для сравнения товара
  $('.CompareCheckbox.invert').click(function(){
	var checked = true,
		checkboxes = $('.CompareCheckbox:not(.invert)');
	checkboxes.each(function(){
	  if($(this).attr('checked')) {
		checked = false;
		return false;
	  }
	});
   
	checkboxes.each(function(){
	  $(this).attr('checked', checked);
	});
   
	$(this).attr('checked', checked);
  });
 
  // Сравнение товаров. Скрытие характеристик товара, которые выделил пользователь
  $('.CompareGoodsHideSelected').click(function(){
	$('.CompareGoodsTableTbodyComparisonLine').each(function(){
	  var CheckedCheckbox = $(this).find('.CompareCheckbox:checked:not(.invert)');
	  if(CheckedCheckbox.length>0) {
		$(this).hide();
	  }
	});
	// отменяем выделение характеристик товаров
	$('.CompareCheckbox').attr('checked',false);
	return false;
  });
 
  // Сравнение товаров. Отображение скрытых характеристик товара
  $('.CompareGoodsShowAll').click(function(){
	$('.CompareGoodsTableTbodyComparisonLine:hidden').show();
	return false;
  });
 
  // Сравнение товаров. Верхняя навигация изменение фильтра на отображение всех характеристик товаров
  $('.CompareGoodsTableFilterShowAll').click(function(){
	$('.CompareGoodsTableFilterSelected').removeClass('CompareGoodsTableFilterSelected');
	$('.CompareGoodsTableTbodyComparisonLine:hidden').show();
   
	$(this).addClass('CompareGoodsTableFilterSelected');
	return false;
  });
  // Сравнение товаров. Фильтр в верхней навигации. Отображение только различающихся характеристик товара
  $('.CompareGoodsTableFilterShowOnlyDifferent').click(function(){
	$('.CompareGoodsTableFilterSelected').removeClass('CompareGoodsTableFilterSelected');
	$('.CompareGoodsTableTbodyComparisonLine:not(.same)').show();
	$('.CompareGoodsTableTbodyComparisonLine.same').hide();
	$(this).addClass('CompareGoodsTableFilterSelected');
	return false;
  });
  // Сравнение товаров. При наведении на строку сравнения, она выделяется цветом
  $('.CompareGoodsTableTbodyComparisonLine').hover(
	function () { $(this).addClass('hover'); },
	function () { $(this).removeClass('hover'); }
  );
 
  // При клике по строке выделяем свойство
  $('.CompareGoodsTableTbodyComparisonLine td:not(.ceil1)').click(function(){
	var CompareCheckbox = $(this).parent().find('.CompareCheckbox');
	if(CompareCheckbox.attr('checked')) {
	  CompareCheckbox.attr('checked', false);
	} else {
	  CompareCheckbox.attr('checked', true);
	}
  });
 
  // Прокрутка списка сравнения вправо
  $('.CompareGoodsTablePrev').click(function(){
	return false;
  });
  function compareGetVars () {
	return new Array(
	  $('.CompareGoodsTableTbody tr:first td').length - 1,
	  parseInt($('.CompareGoodsTableTbody tr:first td:visible:not(.ceil1)').attr('class').replace(new RegExp('noBorderBottom compare\-td compare\-td\-'), '')),
	  parseInt($('.CompareGoodsTableTbody tr:first td:visible:last').attr('class').replace(new RegExp('noBorderBottom compare\-td compare\-td\-'), ''))
	);
  }
 
  // Прокрутка списка сравнения вправо
  $('.CompareGoodsTableNext').click(function(){
   
	// Определяем используемые поля
	var data = compareGetVars();
	 
	// Изменяем их если это возможно.
	if(data[0] > data[2]) {
	  $('.compare-td-' + data[1]).hide();
	  $('.compare-td-' + (data[2] + 1)).show();
	  if((data[2] + 1) >= data[0]) {
		$(this).find('a').addClass('disable');
	  }
	  if(data[1] + 1 != 1) {
		$('.CompareGoodsTablePrev a').removeClass('disable');
	  }
	}
   
	return false;
  });
 
  // Прокрутка списка сравнения вправо
  $('.CompareGoodsTablePrev').click(function(){
   
	// Определяем используемые поля
	var data = compareGetVars();
   
	// Изменяем их если это возможно.
	if(1 < data[1]) {
	  $('.compare-td-' + (data[1] - 1)).show();
	  $('.compare-td-' + data[2]).hide();
	  if((data[1] - 1) <= 1) {
		$(this).find('a').addClass('disable');
	  }
	  if(data[2] - 1 != data[0]) {
		$('.CompareGoodsTableNext a').removeClass('disable');
	  }
	}
   
	return false;
  });
  // Форма регистрации нового пользователя, действие ссылки "показать пароль"
  $('.clientForm .showPass').click(function(){
	ChangePasswordFieldType(this, $('#sites_client_pass'));
	return false;
  });
 
  // Форма регистрации нового пользователя, при оформлении заказа
  $('.OrderShowPass').click(function(){
	ChangePasswordFieldType(this, $('#contactPassWord'));
	return false;
  });
 
  // При оформлении заказа дадим возможность зарегистрироваться пользователю
  $('#contactWantRegister').click(function(){
	if($(this).attr("checked")) {
	  $('.contactRegisterNeedElement').show();
	  $('#contactEmail, #contactPassWord').addClass('required');
	} else {
	  $('.contactRegisterNeedElement').hide();
	  $('#contactEmail, #contactPassWord').removeClass('required');
	}
  });
  // Добавление отзыва о товаре. Рейтинг
  if(typeof($('.goodsDataOpinionTableRating').rating) == "function" ) {
	$('.goodsDataOpinionTableRating input').rating({
	  split: 2,
	  required: true
	});
  }
 
  // Иконки оплаты, чтобы яша не думал что тут сидят говносайто дельцы, размещающие по 30 бесполезных ссылок с главной сделаем ссылку яваскриптной
  $('.payment-sistems a').click(function(){
	document.location = '/order/stage/contacts';
	return false;
  });
  // Список отзывов о товаре. Ссылка на отображение формы для добавление отзыва о товаре
  $('.goodsDataOpinionShowAddForm').click(function(){
	if(0 == $('#goodsDataOpinionAddBlock:visible').length) {
	  $('#goodsDataOpinionAddBlock').show('blind');
	} else {
	  $('#goodsDataOpinionAddBlock').hide('blind');
	}
	// Перенесём пользователя на форму добавления отзыва, для случая когда отзывов много и форму в этом случае пользователь не увидит.
	return true;
  });
  // Добавление отзыва о товаре. кнопка reset скрывающая форму добавления отзыва о товаре
  $('.goodsDataOpinionFormReset').click(function(){
	$('#goodsDataOpinionAddBlock').hide('blind');
	return false;
  });
  // Иконка для обновления изображение капчи
  $('.goodsDataOpinionCaptchaRefresh').click(function(){
	RefreshImageAction(this,1,1);
	$('.goodsDataOpinionCaptchaImg').attr('src',$('.goodsDataOpinionCaptchaImg').attr('src')+'&rand'+Math.random(0,10000));
	return false;
  });
 
  // Фильтры по товарам. При нажании на какую либо характеристику или свойство товара происходит фильтрация товаров
  $('.contentTbodySearchFilterBlock input').click(function(){
	$(this)[0].form.submit();
  });
  // Действия при выборе варианта доставки на этапе оформления заказа
  $('.deliveryRadio').click(function(){
   
	// Если текущая выделенная зона доставки не относится к выбранному варианту доставки, снимаем выделение с зоны доставки
	if($('.deliveryZoneRadio:checked').attr('deliveryid') != $(this).val()) {
	  $('.deliveryZoneRadio:checked').click().attr('checked', false);
	}
  });
 
  // Действия при выборе зоны внутри варианта доставки на этапе оформления заказа
  $('.deliveryZoneRadio').click(function(){
   
	var
	  deliveryId = $(this).attr('deliveryid')
	  ,deliveryZonePrice = $(this).parent().find('.deliveryZonePrice')
	  ,deliveryTbody = $('.orderStageDeliveryListTable tbody[rel="' + deliveryId + '"]')
	  ,deliveryBlock = deliveryTbody.find('#deliveryId' + deliveryId)
	  ,deliveryZonePriceBlock = deliveryTbody.find('.orderStageDeliveryZonePrice')
	  ,deliveryDefaultPriceBlock = deliveryTbody.find('.orderStageDeliveryDefaultPrice')
	;
	// Если этот пункт уже выбран, при повторном клике пользователь видимо хочет снять выделение зоны доставки
	if('true' == $(this).attr('rel')) {
	  $(this).attr('checked', false);
	  $(this).attr('rel', 'false');
	 
	  // Показываем цену по умолчанию
	  deliveryDefaultPriceBlock.show();
	  // Скрываем цену образованную от зоны
	  deliveryZonePriceBlock.hide();
	 
	// Отмечаем у всех радио баттонов зон доставки свойство говорящее что они не отмечены
	} else {
	  $('.deliveryZoneRadio').attr('rel', 'false');
	  $(this).attr('rel', 'true');
	 
	  // Показываем цену по умолчанию
	  deliveryDefaultPriceBlock.hide();
	  // Скрываем цену образованную от зоны
	  deliveryZonePriceBlock.show().html(deliveryZonePrice.html());
	 
	  // Выделяем вариант доставки к которому относится зона доставки
	  deliveryBlock.attr('checked', true);
	}
   
  });
 
  $("#deliveryConvenientDate").datepicker({
   dayNames	  : ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье'],
  dayNamesMin	: ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб' ],
  closeText	  : 'Готово',
  currentText	: 'Сегодня' ,
  duration	  : '',
  monthNames	: ['Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'],
  monthNamesShort : ['Янв','Фев','Март','Апр','Май','Июнь','Июль','Авг','Сен','Окт','Ноя','Дек'],
  yearRange	  : "-6:+6",
  dateFormat	: 'dd.mm.yy',
  minDate		 : new Date(),
  firstDay	  : 1
});
  // Действие при наведении на меню категорий, для возможности отображения вложенного подменю
  $('ul.nav li').hover(
	function () {
	  $(this).addClass('over');
	},
	function () {
	  $(this).removeClass('over');
	}
  );
 
  // На странице товара при наведении на маленькое изображение - изменяем большое изображение
  $("ul.preview_images li img").hover(function() {
	var $src = $(this).attr('src');
	$("figure img.main").attr('src', $src.replace('mini', 'main'));
  });
  $("ul.preview_images li a").hover(function() {
	var $src = $(this).attr('src');	var $href = $(this).attr('href');
	$("figure a.main").attr('href', $href.replace('mini', 'main'));
  });
	// добавляем стрелки навигации для слайдера
	$(".other-items").each(function() {
	  $ul = $('<ul class="slide-controls"></ul>');
	  $previous = $('<li><a href="#" class="previous">Предыдущий</a></li>');
	  $next = $('<li><a href="#" class="next">Следующий</a></li>');
	  $ul.append($previous);
	  $ul.append($next);
	  $ul.insertBefore($(this));
	});
   
	// выбранный текст для отображения / скрытия - может содержать HTML (например, изображения)
	var showText='Show';
	var hideText='Hide';
 
	var is_visible = false;
   
	// добавляется стрелоска показать / скрыть для непосредственно предшествующей ссылки с классом "toggle"
	$('.additional').prev().append('<a href="#" class="toggleLink">'+showText+'</a>');
   
	// скрывает елементы с классом 'additional'
	$('.additional').hide();
   
	// событие при клике
	$('a.toggleLink').click(function() {
   
	  // переключение видимости
	  is_visible = !is_visible;
	 
	  // изменить ссылку, в зависимости от того виден или скрыт элемент
	  $(this).html( (!is_visible) ? showText : hideText);
	 
	  // Переключение дисплея - раскомментируйте следующую строку для базового стиля "гармошкой"
	  //$('.additional').hide();$('a.toggleLink').html(showText);
	  $(this).parent().next('.additional').slideToggle("800");
	 
	  return false;
	});
  var
	// Минимальное значение цены для фильтра
	priceFilterMinAvailable = parseInt($('.goodsFilterPriceRangePointers .min').text())
	// Максимальное значение цены для фильтра
	,priceFilterMaxAvailable = parseInt($('.goodsFilterPriceRangePointers .max').text())
	// Максимальное значение цены для фильтра
	,priceSliderBlock = $('#goods-filter-price-slider')
	// Поле ввода текущего значения цены "От"
	,priceInputMin = $( "#goods-filter-min-price" )
	// Поле ввода текущего значения цены "До"
	,priceInputMax = $( "#goods-filter-max-price" )
	// Блок с кнопкой, которую есть смысл нажимать только тогда, когда изменялся диапазон цен.
	,priceSubmitButtonBlock = $( ".goodsFilterPriceSubmit" )
  ;
  // Изменяет размер ячеек с ценой, т.к. у них нет рамок, есть смысл менять размеры полей ввода, чтобы они выглядили как текст
  function priceInputsChangeWidthByChars() {
	// Если есть блок указания минимальной цены
	if(priceInputMin.length) {
	  priceInputMin.css('width', (priceInputMin.val().length*7 + 3) + 'px');
	  priceInputMax.css('width', (priceInputMax.val().length*7 + 3) + 'px');
	}
  }
  // Слайдер, который используется для удобства выбора цены
  priceSliderBlock.slider({
	range: true,
	min: priceFilterMinAvailable,
	max: priceFilterMaxAvailable,
	values: [
	  parseInt($('#goods-filter-min-price').val())
	  ,parseInt($('#goods-filter-max-price').val())
	],
	slide: function( event, ui ) {
	  priceInputMin.val( ui.values[ 0 ] );
	  priceInputMax.val( ui.values[ 1 ] );
	  priceSubmitButtonBlock.show();
	  priceInputsChangeWidthByChars();
	}
  });
  // При изменении минимального значения цены
  priceInputMin.keyup(function(){
	var newVal = parseInt($(this).val());
	if(newVal < priceFilterMinAvailable) {
	  newVal = priceFilterMinAvailable;
	}
	priceSliderBlock.slider("values", 0, newVal);
	priceSubmitButtonBlock.show();
	priceInputsChangeWidthByChars();
  });
  // При изменении максимального значения цены
  priceInputMax.keyup(function(){
	var newVal = parseInt($(this).val());
	if(newVal > priceFilterMaxAvailable) {
	  newVal = priceFilterMaxAvailable;
	}
	priceSliderBlock.slider("values", 1, newVal);
	priceSubmitButtonBlock.show();
	priceInputsChangeWidthByChars();
  });
  // Обновить размеры полей ввода диапазона цен
  priceInputsChangeWidthByChars();
});
//При наведении отображается содержимое корзины
$(function() {
  jQuery(".basket-info").hover(function() {
	jQuery(this).find('.basket-summary').css('display', 'block', 'z-index', '10000');
  }, function() {
	jQuery(this).find('.basket-summary').css('display', 'none');
  });
});


#4 Vaccina

Vaccina

    Активный участник

  • Модераторы
  • 24 353 сообщений

Отправлено 20 Ноябрь 2014 - 00:56

Уточните пожалуйста, актуальна ли ваша проблема? Так как у вас установлена тема Весна и переключение модификаций корректно влияет на стоимость товара.




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных