Сообщение # 1 | 12:47:28
Здравствуйте!
ССЫЛКО: http://forsmark.ucoz.ru/shop
ПРОБЛЕМА: Нет анимации при нажатие на кнопку "В корзину"
КОД КНОПКИ:
Код
<a href="javascript://" onclick="add2Basket('$ID$','id'); " class="shrink color2"><i aria-hidden="true" class="icon-shop"></i></a>

КОД КОРЗИНЫ:
Код
<?if($NUM_ENTRIES$)?>
<a class="basketorder" href="/shop/checkout">$NUM_ENTRIES$ шт. на $ORDER_AMOUNT$</a><a href="javascript:;" onclick="clearBasket()">Очистить</a>
<?else?>
<a href="#"><i aria-hidden="true" class="icon-shop" style="font-size:20px;margin:5px;padding-top:5px;"></i>Корзина пуста</a>
<?endif?>

<script language="Javascript"><!--
var lock_buttons = 0;

function clearBasket(){
         if(lock_buttons) return false; else lock_buttons = 1;
         var el = $('#shop-basket');
         if(el.length){ var g=document.createElement("div"); $(g).addClass('myWinGrid').attr("id",'shop-basket-fade').css({"left":"0","top":"0","position":"absolute","border":"#CCCCCC 1px solid","width":$(el).width()+'px',"height":$(el).height()+'px',"z-index":5};).hide().bind('mousedown',function(e){e.stopPropagation();e.preventDefault();_uWnd.globalmousedown();};).html('<div class="myWinLoad" style="margin:5px;"></div>'); $(el).append(g); $(g).show(); }
         _uPostForm('',{type:'POST',url:'/shop/basket',data:{'mode':'clear'}};);
         return false;
}

function removeBasket(id){
         if(lock_buttons) return false; else lock_buttons = 1;
         $('#basket-item-'+id+' .sb-func').removeClass('remove').addClass('myWinLoadS').attr('title','');
         _uPostForm('',{type:'POST',url:'/shop/basket',data:{'mode':'del', 'id':id}};);
         return false;
}

function add2Basket(id,pref){
         if(lock_buttons) return false; else lock_buttons = 1;
         var opt = new Array();
         $('#b'+pref+'-'+id+'-basket').attr('disabled','disabled');
         $('#'+pref+'-'+id+'-basket').removeClass('done').removeClass('err').removeClass('add').addClass('wait').attr('title','');
         $('#'+pref+'-'+id+'-options-selectors').find('input:checked, select').each(function(){ opt.push(this.id.split('-')[3]+(parseInt(this.value) ? '-'+this.value :''));};);
         _uPostForm('',{type:'POST',url:'/shop/basket',data:{'mode':'add', 'id':id, 'pref':pref, 'opt':opt.join(':'), 'cnt':$('#q'+pref+'-'+id+'-basket').attr('value')}};);
         return false;
}

function buyNow(id,pref){
         if(lock_buttons) return false; else lock_buttons = 1;
         var opt = new Array();
         $('#b'+pref+'-'+id+'-buynow').attr('disabled','disabled');
         $('#'+pref+'-'+id+'-buynow').removeClass('done').removeClass('err').removeClass('now').addClass('wait').attr('title','');
         $('#'+pref+'-'+id+'-options').find('input:checked, select').each(function(){ opt.push(this.id.split('-')[3]+(parseInt(this.value) ? '-'+this.value :''));};);
         _uPostForm('',{type:'POST',url:'/shop/basket',data:{'mode':'add', 'id':id, 'pref':pref, 'opt':opt.join(':'), 'cnt':$('#q'+pref+'-'+id+'-basket').attr('value'), 'now':1}};);
         return false;
}
//--></script>


Добавлено (09 Окт 2014, 12:18:16)
---------------------------------------------
Подобный вопрос поднимался не раз на разных формумах.
Вот что нашел:
Цитата
Помогите настроить свою кнопку "В корзину". Пишу ссылку <a onclick="add2Basket('$ID$','id');" class="buy" style="color:#fff;cursor:pointer;">В корзину</a>. В корзину добавляет, но только после обновления страницы, и нет визуального эффекта. Как правильно ссылку прописать?

Цитата
Сам спросил, сам решил. Использовал <div class="buy" onclick="add2Basket('$ID$','top_view');" title="В корзину" style="color:#fff;cursor:pointer;">В корзину</div>

Пробовал повторить. не вышло...

Добавлено (09 Окт 2014, 12:32:07)
---------------------------------------------
Хм))) Как и тот человек, нашел решение тоже сам.

В общем смотрите, кнопка с кодом:
Цитата
<a href="javascript://" onclick="add2Basket('$ID$','id');">В корзину</a>

Заметил что в разных случиях пишут по разному и параметр id иногда пишут как last_add То есть вот так:
Цитата
<a href="javascript://" onclick="add2Basket('$ID$','last_add');">В корзину</a>

В чем разница так и не понял
Что бы анимация проходила, и товар добавлялся в корзину без обновления страницы взял id="ipreview"
и вставил в главный <div> отвечающий за вид товара.
Как я понял, id="ipreview" нужно присвоить блоку - который хотим анимировано отправить в корзину.

Единственное что осталось до сих пор не понятно, это то, что при двойном, тройном, четверном, клике на кнопку в корзину, в корзине изменяется цена +1 товар с кликом, НО: количество остается 1 шт.

Придется ковырять скрипт:
Код
function add2Basket(id,pref){         
          if(lock_buttons) return false; else lock_buttons = 1;         
          var opt = new Array();         
          $('#b'+pref+'-'+id+'-basket').attr('disabled','disabled');         
          $('#'+pref+'-'+id+'-basket').removeClass('done').removeClass('err').removeClass('add').addClass('wait').attr('title','');         
          $('#'+pref+'-'+id+'-options-selectors').find('input:checked, select').each(function(){ opt.push(this.id.split('-')[3]+(parseInt(this.value) ? '-'+this.value :''));};);         
          _uPostForm('',{type:'POST',url:'/shop/basket',data:{'mode':'add', 'id':id, 'pref':pref, 'opt':opt.join(':'), 'cnt':$('#q'+pref+'-'+id+'-basket').attr('value')}};);         
          return false;         
}


P.S. Данная тема уже проиндексировалась поисковиком! Модеры поменяйте описание темы, допишите: "add2Basket" - чтобы через поисковики можно было найти. Так будет проще =)

Добавлено (09 Окт 2014, 12:41:42)
---------------------------------------------
ДОЧИТАЙТЕ:

Заметил что был не прав на счет того, что
Цитата
Как я понял, id="ipreview" нужно присвоить блоку - который хотим анимировано отправить в корзину.

Он отсылает (no-img) советую присвоить этот код id="ipreview" для изображения, тогда в корзину анимированно полетит изображение.
В моем случае его просто нету, поэтому присваивал блоку.

Добавлено (09 Окт 2014, 12:47:28)
---------------------------------------------
И снова вижу что-то не так.
Цитата
Единственное что осталось до сих пор не понятно, это то, что при двойном, тройном, четверном, клике на кнопку в корзину, в корзине изменяется цена +1 товар с кликом, НО: количество остается 1 шт.

Придется ковырять скрипт:

Не нужно ковырять скрипт)))
В настройках вида корзины строчку
Цитата
<a class="basketorder" href="/shop/checkout">$NUM_ENTRIES$ шт. на $ORDER_AMOUNT$</a><a href="javascript:;" onclick="clearBasket()">Очистить</a>

Меняем вот этим кодом $ORDER_NUM$ - суммарное количество товарных позиций в заказе
Цитата
<a class="basketorder" href="/shop/checkout">$ORDER_NUM$ шт. на $ORDER_AMOUNT$</a><a href="javascript:;" onclick="clearBasket()">Очистить</a>

Что приводит к нормализации добавления товара и выводимого количества товаров в корзине.

Люди дающие ссылку на свой сайт сразу, попадают в рай в не очереди
Сообщение отредактировал NurHasber - Четверг, 09 Окт 2014, 12:51:38