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


Изменение Типа Выбора Модификации


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

#261 Ingleest

Ingleest

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

  • Пользователи
  • PipPipPipPip
  • 406 сообщений
  • ГородTallinn

Отправлено 01 Январь 2016 - 15:40

Просмотр сообщенияIngleest (18 Декабрь 2015 - 00:59) писал:

Здравствуйте! У меня тоже не получается, ни первый вариант, ни второй. Тема "спорт". Страница товара "Banks".

Спасибо, ответили в этой теме

#262 Ingleest

Ingleest

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

  • Пользователи
  • PipPipPipPip
  • 406 сообщений
  • ГородTallinn

Отправлено 25 Январь 2016 - 16:07

Подскажите, пожалуйста, как решить проблему: модификации расположены не на одной линии. Если название модификации из двух строк, то эта картинка выше, если из трех, то еще выше (любой товар). Как их выровнять?

#263 Danil

Danil

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

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

Отправлено 25 Январь 2016 - 16:51

Просмотр сообщенияIngleest (25 Январь 2016 - 16:07) писал:

Подскажите, пожалуйста, как решить проблему: модификации расположены не на одной линии. Если название модификации из двух строк, то эта картинка выше, если из трех, то еще выше (любой товар). Как их выровнять?
В main.css найдите код
.goodsDataMainModificationsBlockProperty input + label {
	border: 0px solid #ccc;
	cursor: pointer;
	display: inline-block;
	height: 145px;
	line-height: 10px;
	margin: 4px;
	text-align: center;
	width: 145px;
}
и замените на
.goodsDataMainModificationsBlockProperty input + label {
	border: 0px solid #ccc;
	cursor: pointer;
	float:left;
	height: 145px;
	line-height: 10px;
	margin: 4px;
	text-align: center;
	width: 145px;
}


#264 Ingleest

Ingleest

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

  • Пользователи
  • PipPipPipPip
  • 406 сообщений
  • ГородTallinn

Отправлено 25 Январь 2016 - 17:14

Просмотр сообщенияDanil (25 Январь 2016 - 16:51) писал:

В main.css найдите код
.goodsDataMainModificationsBlockProperty input + label {
border: 0px solid #ccc;
cursor: pointer;
display: inline-block;
height: 145px;
line-height: 10px;
margin: 4px;
text-align: center;
width: 145px;
}
и замените на
.goodsDataMainModificationsBlockProperty input + label {
border: 0px solid #ccc;
cursor: pointer;
float:left;
height: 145px;
line-height: 10px;
margin: 4px;
text-align: center;
width: 145px;
}
Супер-круто! Спасибо

#265 Карамелька

Карамелька

    Пользователь

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

Отправлено 21 Февраль 2016 - 19:02

Здравствуйте,помогите решить проблемы.
1.Не могу добавить в корзину нужные модификации товара,
например:мне нужно купить 2 водолазки одного размера и разных цветов(т.синюю и красную)выбираю размер 104-110,цвет т.синий,а в корзину попадает салатовый.
2.Проделываю тоже самое ещё раз с другим цветом(размер тот же),пишет,что товара нет в наличии,хотя это не так.
т.е купить 2 водолазки не получается,т.к при покупки одной другие становятся не доступны.

Аккаунт SL-372899

Спасибо.

#266 Карамелька

Карамелька

    Пользователь

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

Отправлено 22 Февраль 2016 - 07:25

Кто-нибудь поможет?

#267 Карамелька

Карамелька

    Пользователь

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

Отправлено 22 Февраль 2016 - 10:53

Я всё ещё жду помощи. :angry:

#268 Карамелька

Карамелька

    Пользователь

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

Отправлено 22 Февраль 2016 - 13:45

Мой код в main.js


Цитата

// Отправляет ошибку на сервер, для того чтобы служба тех поддержки могла разобраться в проблеме как можно быстрее.
function sendError (desc, page, line) {
  var img=document.createElement('img');
  img.src = 'http://storeland.ru/...IComponent(desc)+'&page='+encodeURIComponent(window.location)+'&line=0';
  img.style.position = 'absolute';
  img.style.top = '-9999px';

  try { document.getElementsByTagName('head').appendChild(img) } catch (e){}
  return false;
}

// Форматирует цену
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);
}

$(document).ready(function(){

  // Валидация формы на странице оформления заказа, а так же формы на страницы связи с администрацией
  $('.order form, .feedbackForm, .clientForm, .goodsDataOpinionAddForm').submit(function(){
        if($(this).valid()) {
          SubmitButton = $(this).find('input:submit, button:submit').attr('disabled', true);
          setTimeout('SubmitButton.attr("disabled", false);', 10000);
        }
  }).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;
  });

  // Настройки галереи изображений
  $.nyroModalSettings({
        // из всех элементов с атрибут rel="gallery" будем создавать галерею
        gallery: 'gallery',
        // Включаем прокрутку с последнего изображения на первое
        galleryLoop: true
  });

  // Увеличение изображение при клике на него и открытие галереи изображений
  $('.goodsDataMainImage a, .goodsDataMainImageZoom a').click(function(){

                // Идентификатор главной картинки
        var goodsImageId = $('.goodsDataMainImage input').attr("rel"),

                // Маленькое изображение, по которому на самом деле будем кликать
                goodsImageIconElement = $('.goodsDataMainImagesIcon input[rel="'+goodsImageId+'"]').parent().find('a');

        // Для иконки изображения запустим галерею  
        goodsImageIconElement.nyroModalManual();
        return false;
  });


  // Добавление товара в корзину через ajax
  $('.goodsDataForm, .goodsToCartFromCompareForm, .goodsListForm').submit(function(){

        $(this).nyroModalManual({
          formIndicator: 'ajax_q',  // Value added when a form is sent
          minWidth: 450, // Minimum width
          minHeight: 140, // Minimum height
          gallery: null // Gallery name if provided
        });
        return false;
  });

  // Изменение главного изображения товара при нажатии на миниатюру
  $('.goodsDataMainImagesIcon a').click(function(){
                // Путь к среднему изображению
        var MediumImageUrl = $(this).find('img').attr('rel'),

                // Главное изображение, в которое будем вставлять новое изображение
                MainImage = $('.goodsDataMainImage img'),

                // В этом объекте хранится идентификатор картинки главного изображения для коректной работы галереи изображений
                MainImageIdObject = $('.goodsDataMainImage input'),

                // Получаем идентификатор этого изображения из соседнего input поля
                GoodsImageIconId = $(this).parent().find('input').attr("rel");

        // Изменяем главное изображение
        MainImage.attr('src',MediumImageUrl);

        // Изменяем идентификатор главного изображения
        MainImageIdObject.attr("rel",GoodsImageIconId);

        return false;
  });

  // Функция собирает свойства в строку, для определения модификации товара
  function getSlugFromGoodsDataFormModificationsProperties(obj) {
        var properties = new Array();
        var reset_arr = new Array();
        $(obj).find('input[type="radio"]').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 = $('.goodsDataMainModificationsBlock .goodsDataMainModificationsRadio'),

        // Запоминаем блоки с информацией по модификациям, для ускорения работы
        goodsDataModifications = $('div.goodsDataMainModificationsList');


  // Обновляет возможность выбора свойств модификации, для отключения возможности выбора по характеристикам модификации которой не существует.
  function updateVisibility (y) {
        // Проверяем в каждом соседнем поле выбора модификаций, возможно ли подобрать модификацию для указанных свойств
        goodsDataProperties.each(function(j){
          // Если мы сравниваем значения свойства не с самим собой, а с другим списком значений свойств
          if( j != y ) {
                // Проходим по всем значениям текущего свойства модификации товара
                $(this).find('input[type="radio"]').each(function(){
                  // Записываем временный массив свойств, которые будем использовать для проверки существования модификации
                  //var checkProperties = new Array();
                  /*$(goodsDataProperties).each(function(i){
                        if($(this).is(':checked'))
                          checkProperties[i] = parseInt($(this).val());
                  });*/
                  // Пытаемся найти модификацию соответствующую выбранным значениям свойств
                  //checkProperties[j] = parseInt($(this).attr('value'));
                  // Собираем хэш определяющий модификацию по свойствам
                  //slug = checkProperties.sort(function(a,B){return a - b}).join('_');
slug = getSlugFromGoodsDataFormModificationsProperties(goodsDataProperties);
                  // Ищем модификацию по всем выбранным значениям свойств товара. Если модификации нет в возможном выборе, отмечаем потенциальное значение выбора как не доступное для выбора, т.к. такой модификации нет.
                  if(!goodsDataModifications.filter('[rel="'+slug+'"]').length) {
                   $(this).attr('disabled', 'disabled');
                  // Если выбрав данное значение свойства товара можно подобрать модификацию, то выделяем вариант выбора как доступный.
                  } else {
                        $(this).removeAttr('disabled');
                  }
                });
          }
        });
  }
  // Обновляем возможность выбора модификации товара по свойствам. Для тех свойств, выбор по которым не возможен, отключаем такую возможность.
  updateVisibility (0);

  // Изменение цены товара при изменении у товара свойства для модификации
  goodsDataProperties.each(function(y){
        $(this).find('input[type="radio"]').click(function(){
          var slug = getSlugFromGoodsDataFormModificationsProperties(goodsDataProperties),
                  modificationBlock                      = goodsDataModifications.filter('[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);
                 window.location.hash = '?modification='+modificationId;
           } else {
                 // Отправим запись об ошибке на сервер
                 sendError('no modification by slug '+slug);
                 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'));

        // Запускаем галлерею изображений от изображения товара, чтобы если например кликнули по гайке, то и открылись гайка, а не еще какой-либо изображение этого товара
        ImageIngallery.nyroModalManual({
          gallery: 'gallery' +  $(this).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);
        }
  });

  // Форма регистрации нового пользователя, действие ссылки "показать пароль"
  $('.clientForm .showPass').click(function(){
        ChangePasswordFieldType(this, $('#sites_client_pass'));
        return false;
  });

  // Форма регистрации нового пользователя, при оформлении заказа
  $('.OrderShowPass').click(function(){
        ChangePasswordFieldType(this, $('#contactPassWord'));
        return false;
  });

  // При вводе пароля с caps lockом, покажет блок с сообщением для пользователя
  $('#sites_client_pass, #contactPassWord').capslock({
        caps_lock_on:function(){$("#caps_lock").show();},
        caps_lock_off:function(){$("#caps_lock").hide();}
  });

  // При оформлении заказа дадим возможность зарегистрироваться пользователю
  $('#contactWantRegister').click(function(){
        if($(this).attr("checked")) {
          $('.contactRegisterNeedElement').show();
          $('#contactEmail, #contactPassWord').addClass('required');
        } else {
          $('.contactRegisterNeedElement').hide();
          $('#contactEmail, #contactPassWord').removeClass('required');
        }
  });

  // Добавление отзыва о товаре. Рейтинг
  if(typeof($('.goodsDataOpinionTableRating').stars) == "function" ) {
        $('.goodsDataOpinionTableRating').stars({
          inputType: "input",
          split: 2,
          captionEl: $(".goodsDataOpinionMsg"),
          cancelShow: false
        });
  }

  // Список отзывов о товаре. Ссылка на отображение формы для добавление отзыва о товаре
  $('.goodsDataOpinionShowAddForm').click(function(){
        if(0 == $('#goodsDataOpinionAddBlock:visible').length) {
          $('#goodsDataOpinionAddBlock').show('blind');
        } else {
          $('#goodsDataOpinionAddBlock').hide('blind');
          return false;
        }
  });

  // Добавление отзыва о товаре. кнопка reset скрывающая форму добавления отзыва о товаре
  $('.goodsDataOpinionAddForm input:reset').click(function(){
        $('#goodsDataOpinionAddBlock').hide('blind');
  });

  // Иконка для обновления изображение капчи
  $('.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
        });
});


Помогите мне исправить проблему.

#269 Карамелька

Карамелька

    Пользователь

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

Отправлено 23 Февраль 2016 - 05:32

ап

#270 Карамелька

Карамелька

    Пользователь

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

Отправлено 23 Февраль 2016 - 13:40

Ап,ап,ап помогите мне !!!!!!!!

#271 Ingleest

Ingleest

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

  • Пользователи
  • PipPipPipPip
  • 406 сообщений
  • ГородTallinn

Отправлено 23 Февраль 2016 - 14:19

Да, чего-то молчат... Вы пока поставьте свой номер аккаунта SL... в профиль. Им это нужно, чтобы посмотреть код вашего магазина.
Может, дело в этом.

#272 Карамелька

Карамелька

    Пользователь

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

Отправлено 23 Февраль 2016 - 15:05

Просмотр сообщенияIngleest (23 Февраль 2016 - 14:19) писал:

Да, чего-то молчат... Вы пока поставьте свой номер аккаунта SL... в профиль. Им это нужно, чтобы посмотреть код вашего магазина.
Может, дело в этом.

Да,я выше аккаунт написала,сейчас ещё в профиль напишу.

#273 Карамелька

Карамелька

    Пользователь

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

Отправлено 24 Февраль 2016 - 09:48

ап,ап

#274 Ingleest

Ingleest

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

  • Пользователи
  • PipPipPipPip
  • 406 сообщений
  • ГородTallinn

Отправлено 24 Февраль 2016 - 11:54

Странно вообще. Попробуйте написать в личку администратору, который сейчас онлайн. На главной странице форума есть ссылка "Администрация"

#275 Карамелька

Карамелька

    Пользователь

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

Отправлено 24 Февраль 2016 - 11:59

Просмотр сообщенияIngleest (24 Февраль 2016 - 11:54) писал:

Странно вообще. Попробуйте написать в личку администратору, который сейчас онлайн. На главной странице форума есть ссылка "Администрация"

Спасибо

#276 Юля123

Юля123

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

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

Отправлено 24 Февраль 2016 - 12:08

Просмотр сообщенияКарамелька (24 Февраль 2016 - 11:59) писал:

Спасибо

Здравствуйте, извините за долгое ожидание, уточните пожалуйста, после каких изменений возникла такая проблема? Вы меняли в последнее время код в main.js? Если да, то если не сложно, пришлите, пожалуйста, ссылку на инструкцию, по которой Вы производили изменения.

#277 Карамелька

Карамелька

    Пользователь

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

Отправлено 24 Февраль 2016 - 12:33

Просмотр сообщенияЮля123 (24 Февраль 2016 - 12:08) писал:

Здравствуйте, извините за долгое ожидание, уточните пожалуйста, после каких изменений возникла такая проблема? Вы меняли в последнее время код в main.js? Если да, то если не сложно, пришлите, пожалуйста, ссылку на инструкцию, по которой Вы производили изменения.

Я просто добавила товар на сайт и установила модификации,потом попыталась сделать пробный заказ и не получилось.

Потом попробовала последовать совету № 7 этой темы- http://forum.storela...ра-модификации/

не получилось у меня и я всё вернула назад.Затем пробовала совет 41,

http://forum.storela...ии/page__st__40

тоже не получилось,выдал ошибку,всё откатила назад.

#278 Юля123

Юля123

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

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

Отправлено 24 Февраль 2016 - 13:15

Просмотр сообщенияКарамелька (24 Февраль 2016 - 12:33) писал:

Я просто добавила товар на сайт и установила модификации,потом попыталась сделать пробный заказ и не получилось.

Потом попробовала последовать совету № 7 этой темы- http://forum.storela...ра-модификации/

не получилось у меня и я всё вернула назад.Затем пробовала совет 41,

http://forum.storela...ии/page__st__40

тоже не получилось,выдал ошибку,всё откатила назад.

Попробуйте в main.js код:

  // Функция собирает свойства в строку, для определения модификации товара
  function getSlugFromGoodsDataFormModificationsProperties(obj) {
		var properties = new Array();
		var reset_arr = new Array();
		$(obj).find('input[type="radio"]').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 = $('.goodsDataMainModificationsBlock .goodsDataMainModificationsRadio'),

		// Запоминаем блоки с информацией по модификациям, для ускорения работы
		goodsDataModifications = $('div.goodsDataMainModificationsList');


  // Обновляет возможность выбора свойств модификации, для отключения возможности выбора по характеристикам модификации которой не существует.
  function updateVisibility (y) {
		// Проверяем в каждом соседнем поле выбора модификаций, возможно ли подобрать модификацию для указанных свойств
		goodsDataProperties.each(function(j){
		  // Если мы сравниваем значения свойства не с самим собой, а с другим списком значений свойств
		  if( j != y ) {
				// Проходим по всем значениям текущего свойства модификации товара
				$(this).find('input[type="radio"]').each(function(){
				  // Записываем временный массив свойств, которые будем использовать для проверки существования модификации
				  //var checkProperties = new Array();
				  /*$(goodsDataProperties).each(function(i){
						if($(this).is(':checked'))
						  checkProperties[i] = parseInt($(this).val());
				  });*/
				  // Пытаемся найти модификацию соответствующую выбранным значениям свойств
				  //checkProperties[j] = parseInt($(this).attr('value'));
				  // Собираем хэш определяющий модификацию по свойствам
				  //slug = checkProperties.sort(function(a,B){return a - b}).join('_');
slug = getSlugFromGoodsDataFormModificationsProperties(goodsDataProperties);
				  // Ищем модификацию по всем выбранным значениям свойств товара. Если модификации нет в возможном выборе, отмечаем потенциальное значение выбора как не доступное для выбора, т.к. такой модификации нет.
				  if(!goodsDataModifications.filter('[rel="'+slug+'"]').length) {
				   $(this).attr('disabled', 'disabled');
				  // Если выбрав данное значение свойства товара можно подобрать модификацию, то выделяем вариант выбора как доступный.
				  } else {
						$(this).removeAttr('disabled');
				  }
				});
		  }
		});
  }
  // Обновляем возможность выбора модификации товара по свойствам. Для тех свойств, выбор по которым не возможен, отключаем такую возможность.
  updateVisibility (0);

  // Изменение цены товара при изменении у товара свойства для модификации
  goodsDataProperties.each(function(y){
		$(this).find('input[type="radio"]').click(function(){
		  var slug = getSlugFromGoodsDataFormModificationsProperties(goodsDataProperties),
				  modificationBlock					  = goodsDataModifications.filter('[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);
				 window.location.hash = '?modification='+modificationId;
		   } else {
				 // Отправим запись об ошибке на сервер
				 sendError('no modification by slug '+slug);
				 alert('К сожалению сейчас не получается подобрать модификацию соответствующую выбранным параметрам.');
		   }

		   // Обновляем возможность выбора другой модификации для текущих значений свойств модификации товара. 
		   updateVisibility(y);
		});
  });


заменить на код:

  // Функция собирает свойства в строку, для определения модификации товара
  function getSlugFromGoodsDataFormModificationsProperties(obj) {
	var properties = new Array();
	$(obj).each(function(i){
	  properties[i] = parseInt($(this).val());
	});
	return properties.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);
 
  // Изменение цены товара при изменении у товара свойства для модификации
  goodsDataProperties.each(function(y){
	$(this).change(function(){
	  var slug = getSlugFromGoodsDataFormModificationsProperties(goodsDataProperties),
		  modificationBlock			 = goodsDataModifications.filter('[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 {
		 // Отправим запись об ошибке на сервер
		 sendError('no modification by slug '+slug);
		 alert('К сожалению сейчас не получается подобрать модификацию соответствующую выбранным параметрам.');
	   }
	  
	   // Обновляем возможность выбора другой модификации для текущих значений свойств модификации товара.
	   updateVisibility(y);
	});
  });


#279 Карамелька

Карамелька

    Пользователь

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

Отправлено 24 Февраль 2016 - 13:30

Просмотр сообщенияЮля123 (24 Февраль 2016 - 13:15) писал:

Попробуйте в main.js код:

// Функция собирает свойства в строку, для определения модификации товара
function getSlugFromGoodsDataFormModificationsProperties(obj) {
var properties = new Array();
var reset_arr = new Array();
$(obj).find('input[type="radio"]').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 = $('.goodsDataMainModificationsBlock .goodsDataMainModificationsRadio'),

// Запоминаем блоки с информацией по модификациям, для ускорения работы
goodsDataModifications = $('div.goodsDataMainModificationsList');


// Обновляет возможность выбора свойств модификации, для отключения возможности выбора по характеристикам модификации которой не существует.
function updateVisibility (y) {
// Проверяем в каждом соседнем поле выбора модификаций, возможно ли подобрать модификацию для указанных свойств
goodsDataProperties.each(function(j){
// Если мы сравниваем значения свойства не с самим собой, а с другим списком значений свойств
if( j != y ) {
// Проходим по всем значениям текущего свойства модификации товара
$(this).find('input[type="radio"]').each(function(){
// Записываем временный массив свойств, которые будем использовать для проверки существования модификации
//var checkProperties = new Array();
/*$(goodsDataProperties).each(function(i){
if($(this).is(':checked'))
checkProperties[i] = parseInt($(this).val());
});*/
// Пытаемся найти модификацию соответствующую выбранным значениям свойств
//checkProperties[j] = parseInt($(this).attr('value'));
// Собираем хэш определяющий модификацию по свойствам
//slug = checkProperties.sort(function(a,B){return a - b}).join('_');
slug = getSlugFromGoodsDataFormModificationsProperties(goodsDataProperties);
// Ищем модификацию по всем выбранным значениям свойств товара. Если модификации нет в возможном выборе, отмечаем потенциальное значение выбора как не доступное для выбора, т.к. такой модификации нет.
if(!goodsDataModifications.filter('[rel="'+slug+'"]').length) {
$(this).attr('disabled', 'disabled');
// Если выбрав данное значение свойства товара можно подобрать модификацию, то выделяем вариант выбора как доступный.
} else {
$(this).removeAttr('disabled');
}
});
}
});
}
// Обновляем возможность выбора модификации товара по свойствам. Для тех свойств, выбор по которым не возможен, отключаем такую возможность.
updateVisibility (0);

// Изменение цены товара при изменении у товара свойства для модификации
goodsDataProperties.each(function(y){
$(this).find('input[type="radio"]').click(function(){
var slug = getSlugFromGoodsDataFormModificationsProperties(goodsDataProperties),
modificationBlock = goodsDataModifications.filter('[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);
window.location.hash = '?modification='+modificationId;
} else {
// Отправим запись об ошибке на сервер
sendError('no modification by slug '+slug);
alert('К сожалению сейчас не получается подобрать модификацию соответствующую выбранным параметрам.');
}

// Обновляем возможность выбора другой модификации для текущих значений свойств модификации товара.
updateVisibility(y);
});
});


заменить на код:

// Функция собирает свойства в строку, для определения модификации товара
function getSlugFromGoodsDataFormModificationsProperties(obj) {
var properties = new Array();
$(obj).each(function(i){
	 properties[i] = parseInt($(this).val());
});
return properties.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);

// Изменение цены товара при изменении у товара свойства для модификации
goodsDataProperties.each(function(y){
$(this).change(function(){
	 var slug = getSlugFromGoodsDataFormModificationsProperties(goodsDataProperties),
		 modificationBlock			 = goodsDataModifications.filter('[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 {
		 // Отправим запись об ошибке на сервер
		 sendError('no modification by slug '+slug);
		 alert('К сожалению сейчас не получается подобрать модификацию соответствующую выбранным параметрам.');
	 }
	
	 // Обновляем возможность выбора другой модификации для текущих значений свойств модификации товара.
	 updateVisibility(y);
});
});

Сделала,ничего не поменялось в плане выбора размера и цвета,так и падает в корзину по умолчанию маленький размер и цвет,который присвоен ему.
НО добавилось вот что:при добавлении товара в корзину меня перекидывает на страницу с корзиной,раньше было окно-Вы добавили в корзину то,то и то.

#280 Юля123

Юля123

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

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

Отправлено 24 Февраль 2016 - 14:38

Просмотр сообщенияКарамелька (24 Февраль 2016 - 13:30) писал:

Сделала,ничего не поменялось в плане выбора размера и цвета,так и падает в корзину по умолчанию маленький размер и цвет,который присвоен ему.
НО добавилось вот что:при добавлении товара в корзину меня перекидывает на страницу с корзиной,раньше было окно-Вы добавили в корзину то,то и то.

Попробуйте весь файл main.js заменить на код:

// Отправляет ошибку на сервер, для того чтобы служба тех поддержки могла разобраться в проблеме как можно быстрее.
function sendError (desc, page, line) {
  var img=document.createElement('img');
  img.src = 'http://storeland.ru/error/js?desc='+encodeURIComponent(desc)+'&page='+encodeURIComponent(window.location)+'&line=0';
  img.style.position = 'absolute';
  img.style.top = '-9999px';
  try { document.getElementsByTagName('head').appendChild(img) } catch (e){}
  return false;
}
// Форматирует цену
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);
}
$(document).ready(function(){

  // Валидация формы на странице оформления заказа, а так же формы на страницы связи с администрацией
  $('.order form, .feedbackForm, .clientForm, .goodsDataOpinionAddForm').submit(function(){
		if($(this).valid()) {
		  SubmitButton = $(this).find('input:submit, button:submit').attr('disabled', true);
		  setTimeout('SubmitButton.attr("disabled", false);', 10000);
		}
  }).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;
  });
 
  // Настройки галереи изображений
  $.nyroModalSettings({
		// из всех элементов с атрибут rel="gallery" будем создавать галерею
		gallery: 'gallery',
		// Включаем прокрутку с последнего изображения на первое
		galleryLoop: true
  });
  
  // Увеличение изображение при клике на него и открытие галереи изображений
  $('.goodsDataMainImage a, .goodsDataMainImageZoom a').click(function(){
			   
				// Идентификатор главной картинки
		var goodsImageId = $('.goodsDataMainImage input').attr("rel"),
			   
				// Маленькое изображение, по которому на самом деле будем кликать
				goodsImageIconElement = $('.goodsDataMainImagesIcon input[rel="'+goodsImageId+'"]').parent().find('a');
		// Для иконки изображения запустим галерею 
		goodsImageIconElement.nyroModalManual();
		return false;
  });
 
 
  // Добавление товара в корзину через ajax
  $('.goodsDataForm, .goodsToCartFromCompareForm, .goodsListForm').submit(function(){
	   
		$(this).nyroModalManual({
		  formIndicator: 'ajax_q',  // Value added when a form is sent
		  minWidth: 450, // Minimum width
		  minHeight: 140, // Minimum height
		  gallery: null // Gallery name if provided
		});
		return false;
  });
 
  // Изменение главного изображения товара при нажатии на миниатюру
  $('.goodsDataMainImagesIcon a').click(function(){
				// Путь к среднему изображению
		var MediumImageUrl = $(this).find('img').attr('rel'),
			   
				// Главное изображение, в которое будем вставлять новое изображение
				MainImage = $('.goodsDataMainImage img'),
			   
				// В этом объекте хранится идентификатор картинки главного изображения для коректной работы галереи изображений
				MainImageIdObject = $('.goodsDataMainImage input'),
			   
				// Получаем идентификатор этого изображения из соседнего input поля
				GoodsImageIconId = $(this).parent().find('input').attr("rel");
	   
		// Изменяем главное изображение
		MainImage.attr('src',MediumImageUrl);
	   
		// Изменяем идентификатор главного изображения
		MainImageIdObject.attr("rel",GoodsImageIconId);
	   
		return false;
  });
  // Функция собирает свойства в строку, для определения модификации товара
  function getSlugFromGoodsDataFormModificationsProperties(obj) {
	var properties = new Array();
	$(obj).each(function(i){
	  properties[i] = parseInt($(this).val());
	});
	return properties.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);
 
  // Изменение цены товара при изменении у товара свойства для модификации
  goodsDataProperties.each(function(y){
	$(this).change(function(){
	  var slug = getSlugFromGoodsDataFormModificationsProperties(goodsDataProperties),
		  modificationBlock			 = goodsDataModifications.filter('[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 {
		 // Отправим запись об ошибке на сервер
		 sendError('no modification by slug '+slug);
		 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'));
	   
		// Запускаем галлерею изображений от изображения товара, чтобы если например кликнули по гайке, то и открылись гайка, а не еще какой-либо изображение этого товара
		ImageIngallery.nyroModalManual({
		  gallery: 'gallery' +  $(this).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);
		}
  });
  // Форма регистрации нового пользователя, действие ссылки "показать пароль"
  $('.clientForm .showPass').click(function(){
		ChangePasswordFieldType(this, $('#sites_client_pass'));
		return false;
  });
 
  // Форма регистрации нового пользователя, при оформлении заказа
  $('.OrderShowPass').click(function(){
		ChangePasswordFieldType(this, $('#contactPassWord'));
		return false;
  });
  // При вводе пароля с caps lockом, покажет блок с сообщением для пользователя
  $('#sites_client_pass, #contactPassWord').capslock({
		caps_lock_on:function(){$("#caps_lock").show();},
		caps_lock_off:function(){$("#caps_lock").hide();}
  });
 
  // При оформлении заказа дадим возможность зарегистрироваться пользователю
  $('#contactWantRegister').click(function(){
		if($(this).attr("checked")) {
		  $('.contactRegisterNeedElement').show();
		  $('#contactEmail, #contactPassWord').addClass('required');
		} else {
		  $('.contactRegisterNeedElement').hide();
		  $('#contactEmail, #contactPassWord').removeClass('required');
		}
  });
  // Добавление отзыва о товаре. Рейтинг
  if(typeof($('.goodsDataOpinionTableRating').stars) == "function" ) {
		$('.goodsDataOpinionTableRating').stars({
		  inputType: "input",
		  split: 2,
		  captionEl: $(".goodsDataOpinionMsg"),
		  cancelShow: false
		});
  }
 
  // Список отзывов о товаре. Ссылка на отображение формы для добавление отзыва о товаре
  $('.goodsDataOpinionShowAddForm').click(function(){
		if(0 == $('#goodsDataOpinionAddBlock:visible').length) {
		  $('#goodsDataOpinionAddBlock').show('blind');
		} else {
		  $('#goodsDataOpinionAddBlock').hide('blind');
		  return false;
		}
  });
  // Добавление отзыва о товаре. кнопка reset скрывающая форму добавления отзыва о товаре
  $('.goodsDataOpinionAddForm input:reset').click(function(){
		$('#goodsDataOpinionAddBlock').hide('blind');
  });
  // Иконка для обновления изображение капчи
  $('.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
		});
});





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

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