2015-06-25 3 views
0

У меня есть страница галереи продуктов, где я хочу включить две опции, когда нажата кнопка fav, fav-счетчик получает +1, а при нажатии на кнопку тележки счетчик корзин получает +1 значение .. Когда я делаю это только для функции addToCart, он отлично работает, но когда я добавляю новую функцию, добавляя в favs, она не отображает сетки, появляется только загрузчик сетки. Вот мой HTML-код вверхJS addToCart и addToFavs не работают одновременно

<div> 
    <button class="aka-fav"> 
     <i class="aka-fav-icon fa fa-heart-o"></i> 
     <span class="aka-text-hidden">Favoriler</span> 
     <span class="aka-fav-count">0</span> 
    </button> 
    <button class="aka-cart"> 
     <i class="aka-cart-icon fa fa-shopping-cart"></i> 
     <span class="aka-text-hidden">Sepet</span> 
     <span class="aka-cart-count">0</span> 
    </button> 
</div> 

И JS здесь

 // filter ctrls 
     filterCtrls = [].slice.call(document.querySelectorAll('.aka-filter > .aka-fav')), 
     // fav 
     fav = document.querySelector('.aka-fav'), 
     favItems = fav.querySelector('.aka-fav-count'); 

     filterCtrls = [].slice.call(document.querySelectorAll('.aka-filter > .aka-buy')), 
     // cart 
     cart = document.querySelector('.aka-cart'), 
     cartItems = cart.querySelector('.aka-cart-count'); 
     ------- 
     ------- 
     ------- 
     ------- 
     function initEvents() { 
     filterCtrls.forEach(function(filterCtrl) { 
      filterCtrl.addEventListener('click', function() { 
       classie.remove(filterCtrl.parentNode.querySelector('.aka-filter-item-selected'), 'aka-filter-item-selected'); 
       classie.add(filterCtrl, 'aka-filter-item-selected'); 
       iso.arrange({ 
        filter: filterCtrl.getAttribute('data-filter') 
       }); 
       recalcFlickities(); 
       iso.layout(); 
      }); 
     }); 

     // window resize/recalculate sizes for both flickity and isotope/masonry layouts 
     window.addEventListener('resize', throttle(function(ev) { 
      recalcFlickities() 
      iso.layout(); 
     }, 50)); 

     [].slice.call(grid.querySelectorAll('.aka-grid-item')).forEach(function(item) { 
     // add to favlist 
      item.querySelector('.aka-action-fav').addEventListener('click', addToFav); 
     // add to cart 
      item.querySelector('.aka-action-buy').addEventListener('click', addToCart); 
     }); 
    } 

    function addToFav() { 
     classie.add(fav, 'aka-fav-animate'); 
     setTimeout(function() {favItems.innerHTML = Number(favItems.innerHTML) + 1;}, 200); 
     onEndAnimation(favItems, function() { 
      classie.remove(fav, 'aka-fav-animate'); 
     }); 
    } 

    function addToCart() { 
     classie.add(cart, 'aka-cart-animate'); 
     setTimeout(function() {cartItems.innerHTML = Number(cartItems.innerHTML) + 1;}, 200); 
     onEndAnimation(cartItems, function() { 
      classie.remove(cart, 'aka-cart-animate'); 
     }); 
    } 

    function recalcFlickities() { 
     for(var i = 0, len = flkties.length; i < len; ++i) { 
      flkties[i].resize(); 
     } 
    } 

    init(); 

ответ

0

Спасибо, я нашел причину, заменил эту часть;

// filter ctrls 
     filterCtrls = [].slice.call(document.querySelectorAll('.aka-filter > .aka-fav')), 
     // fav 
     fav = document.querySelector('.aka-fav'), 
     favItems = fav.querySelector('.aka-fav-count'); 

     filterCtrls = [].slice.call(document.querySelectorAll('.aka-filter > .aka-buy')), 
     // cart 
     cart = document.querySelector('.aka-cart'), 
     cartItems = cart.querySelector('.aka-cart-count'); 

с этим:

// filter ctrls 
      filterCtrls = [].slice.call(document.querySelectorAll('.aka-filter > .aka-fav')), 
      // fav 
      fav = document.querySelector('.aka-fav'), 
      favItems = fav.querySelector('.aka-fav-count'); 
      // cart 
      cart = document.querySelector('.aka-cart'), 
      cartItems = cart.querySelector('.aka-cart-count'); 

Все еще не работает, то понял, что точка с запятой там и заменить его с запятой. И теперь он работает отлично.

favItems = fav.querySelector('.aka-fav-count'), //this semicolon to comma 
       // cart 
       cart = document.querySelector('.aka-cart'),