Корзина JavaScript это просто!

แชร์
ฝัง
  • เผยแพร่เมื่อ 28 ก.ย. 2024
  • Курс JavaScript 2.0: itgid.info/cou...
    Мои курсы: itgid.info/
    Телеграмм канал JSRules: t.me/jsrules
    Я в телеграмм: @alex_luschenko

ความคิดเห็น • 93

  • @tandev713
    @tandev713 4 ปีที่แล้ว +61

    На 6:42 "Теперь меня не остановить" - смеялся долго!
    Александр, чувство юмора - это очень хороший показатель человечности!
    Благодарю за ваш труд!

  • @yakliker907
    @yakliker907 4 ปีที่แล้ว +1

    Спасибо огромное!!!!!!

  • @hayk1434
    @hayk1434 2 ปีที่แล้ว +1

    А как переместить с одной корзины в другую. есть ролик по этой теме ?

  • @СоздательТопов-э5д
    @СоздательТопов-э5д 2 ปีที่แล้ว +4

    Помогите, что делать, когда я полностью удаляю товар с корзины и добавляю назад у меня вместо числа Nan

    • @Mstiyar
      @Mstiyar 2 ปีที่แล้ว +2

      Сделать проверку есть ли такой id. Если нет добавить с количеством 1, если есть увеличить на 1

  • @js_games_for_dummies
    @js_games_for_dummies ปีที่แล้ว

    Еcли товар убрать и потом снова нажать минус -- товар появляется с количествам NAN.

  • @igroman-toys
    @igroman-toys 3 ปีที่แล้ว

    Мое почтение! Александр, а вы занимаетесь платной разработкой? Мне необходимо в PWA для интернет-магазина реализовать правильную политику кеширования (статика добавляется при просмотре странички пользователем на длительный срок, цены и наличие каждый день)по этому менять для контента версию кеша когда остатки меняются и корзину офлайн(реализация подразумевает что без подключения к интернету покупателю удастся оформить заказ в PWA, а как только интернет появится сервис воркер отправит его на сервер) на данный момент в любой непонятной ситуации будет заглушка с просьбой подключить интернет.

  • @РамазонДжураев-и7э
    @РамазонДжураев-и7э 2 ปีที่แล้ว

    Пожалуйста скажите какие лекарства есть в продаже узбекистана длч улучшения памяти

  • @Пупок-щ3в
    @Пупок-щ3в 4 ปีที่แล้ว +1

    У вас баг на сайте: там, где раздел курсы по этой itgid.info/ ссылке, находится 4 курса, и , если навести мышкой после четвертого курса, то выделяться будут сначала первый курс(NodeJs) , а потом второй(если провести дальше)(React.lite Level).Ну или у меня баг)

    • @itgid
      @itgid  4 ปีที่แล้ว

      У меня. Все сделать руки не доходят. Спасибо.

  • @Evgeniy_Kachan
    @Evgeniy_Kachan 4 ปีที่แล้ว

    Спасибо! Класс!

  • @MrSlavjon
    @MrSlavjon 4 ปีที่แล้ว +1

    Благодарю!

    • @itgid
      @itgid  4 ปีที่แล้ว

      рад!

  • @froststorm77
    @froststorm77 4 ปีที่แล้ว +1

    Я б зробив if(!cart[id]) так чистіше.
    А ще для виводу об'єктів дуже зручно використовувати console.table(cart).

    • @itgid
      @itgid  4 ปีที่แล้ว +2

      да, согласен, но у меня обучающий канал, и я делаю упор на понимании, а не на меньшем коде.

  • @Andrey_Mendel
    @Andrey_Mendel 11 หลายเดือนก่อน

    Цікаво і корисно. Шукаю, як зробити корзину на магазин))

  • @sergeydemjanchyk
    @sergeydemjanchyk 4 ปีที่แล้ว

    Все хорошо, только не массив, а хеш либо объект.

  • @luckyrobot3688
    @luckyrobot3688 3 ปีที่แล้ว

    Подскажите как перерисовать товары в корзине никак не получается. Вывожу модальным окном.
    Так добавляю в корзину
    for(let key in cart){
    if (cart[key].count !== 0 ){
    addCardHtmlMarkup = `

    ${cart[key].name}
    ${cart[key].price}

    -
    ${cart[key].count}
    +
    ×


    `;
    modalBody.insertAdjacentHTML("beforeEnd", addCardHtmlMarkup);
    }
    }
    При нажатии закрыть удаляю все дочерние элементы, но при повторном нажатии просмотра корзины, она пустая, и товары не добавляются при добавлении
    if (modalBody.childNodes.length !== 0){
    modalBody.parentNode.removeChild(modalBody);
    }
    А если не удалять вторым скриптом появляются дубли товаров, почему при удалении перестает все работать

  • @vasya8441
    @vasya8441 4 ปีที่แล้ว +7

    Хорошее видео, за один урок узнал больше чем за прохождение разных курсов там)

  • @Bob3r1245
    @Bob3r1245 4 ปีที่แล้ว +10

    Классные уроки, все подробно и доходчиво. Спасибо.

  • @mzking1536
    @mzking1536 8 หลายเดือนก่อน +1

    Топ контент подъехал но для чайников будет тяжеловато)))

  • @ЕвгенийПанкратов-г5ь
    @ЕвгенийПанкратов-г5ь 3 ปีที่แล้ว +4

    Для новичков и понимания хорошо, но использовать в реальном проекте нельзя.
    Требуется совсем другой подход и в итоге у вас очень много похожего кода, которой делает примерно тоже самое. И если скорость интернета позволяет подгружать скрипт хоть в 20мб, то ресурсы ограничены.
    Если обучать, так правильно, в любом случаи это лучше, чем можно встретить в "профессиональных" проектах.

    • @DIMANVAZ04
      @DIMANVAZ04 2 ปีที่แล้ว

      для реальных проектов надо делать Class Cart ?
      с кучей проверок и асинхронщины?

    • @brutix80
      @brutix80 2 ปีที่แล้ว

      @@DIMANVAZ04 как говорится, самое страшное, кода твой сервис ложится под нагрузкой и клиенты сваливают на другой ресурс. Поэтому и изгаляются разрабы как только можно, чтобы подобного не допустить. Как говорил Цукерберг в "Социальная сеть" : "Фишка фэйсбук в том, что он работает всегда без единого падения"

  • @пустой-и2д
    @пустой-и2д ปีที่แล้ว

    Я в шоке, неделю пытался сам сделать корзину, уходило под 100 строк и нихера не работало, а тут так легко и понятно, аж грустно что я такой идиот

  • @wolfplay7413
    @wolfplay7413 3 ปีที่แล้ว +1

    Скажите , а как потом эту корзину добавить на другую страницу? ( в свой магазин)
    Страница сделана на конструкторе гугл сайтов.
    Куда потом этот код (корзина) вписывать???

  • @ShowBusiness_KG
    @ShowBusiness_KG 2 หลายเดือนก่อน

    Эсли товар будет 1000 штук че делать этот код работать будет

  • @dg9054
    @dg9054 4 ปีที่แล้ว +4

    Преподаватель от Бога! По хорошему завидую вашим студентам

  • @НиколайАмосов-у6и
    @НиколайАмосов-у6и 4 ปีที่แล้ว +1

    Очень доступное объяснение, спасибо. А как правильно сделать если я хочу ещё считать не только количество а ещё и сумму товаров в корзине? Понятно, что в объект добавить поле price, а вот с самой функцией которая сумму посчитает не совсем понятно???

  • @Гитарфан
    @Гитарфан 2 ปีที่แล้ว +2

    Теперь меня не остановить.😁😁😁 Спасибо! Вы супер

  • @MM-mi7oh
    @MM-mi7oh 4 ปีที่แล้ว +1

    Даваи даи нам код пжж прашу тибя !!😭😞

  • @amanrozyev5527
    @amanrozyev5527 3 ปีที่แล้ว +2

    Спасибо за труд. Было бы неплохо добавить счётчик и кнопку добавить в корзину.

  • @const1525
    @const1525 4 ปีที่แล้ว +2

    Кто словил скримера лайк

  • @chatbotsetup
    @chatbotsetup 4 ปีที่แล้ว

    Добрый день мне нужно создать такую корзину только для чат-бота telegram с использованием конструктора с возможность встраивание действие code на js, только базу данных я беру с google sheets
    Вопрос этот код можно применить?

  • @mykhailobokalo6037
    @mykhailobokalo6037 4 ปีที่แล้ว +4

    Спасибо!)

    • @itgid
      @itgid  4 ปีที่แล้ว

      гуд

  • @НикитаЛогинов-и6в
    @НикитаЛогинов-и6в 4 ปีที่แล้ว +1

    Здравствуйте,я не много не понял зачем вы делали переменную которая возвращает функцию,ведь можно написать функцию

    • @itgid
      @itgid  4 ปีที่แล้ว

      можно. Просто и такой способ существует. Чтобы не застаиваться.

    • @Tiberiumgod
      @Tiberiumgod 4 ปีที่แล้ว

      @@vanya_hrynkiv но она существенна

  • @awenn2015
    @awenn2015 4 ปีที่แล้ว

    Теперь после этого задумался сделать крутую корзину на ajax с занесением в глобальный массив Cart[ ], как раз по практикую ООП, я конечно на нем до этого никогда не писал но начинать то надо когда то))

  • @Shiwchik
    @Shiwchik 3 ปีที่แล้ว +1

    Ваще огонь!

  • @Мари-ъ5ы
    @Мари-ъ5ы 3 ปีที่แล้ว +1

    Спасибо, очень полезный урок для начинающего!

  • @rami8640
    @rami8640 ปีที่แล้ว

    направьте, пожалуйста, на видео про renderCart()

  • @DIMANVAZ04
    @DIMANVAZ04 2 ปีที่แล้ว

    У вас ещё и по НОДЕ курс?
    да вы просто лучший, господи

  • @valerykhilinski6477
    @valerykhilinski6477 2 ปีที่แล้ว

    а если в каталоге с товаром добавить иинпут с количеством, как его обработать?

  • @s-form2435
    @s-form2435 2 ปีที่แล้ว

    и как же вывести вот это все через innerHTML?

  • @DK-fg8sl
    @DK-fg8sl 4 ปีที่แล้ว +1

    Спасибо Александр за работу!!! Когда нибудь покажите, как сделать счетчик в корзине, при добавлении товара, чтобы в шапке меню рядом с иконкой корзины появлялось количество.

    • @itgid
      @itgid  4 ปีที่แล้ว +2

      найти сумму элементов массива - это обычный цикл.

    • @DK-fg8sl
      @DK-fg8sl 4 ปีที่แล้ว

      @@itgid СПАСИБО!

    • @galievramil1169
      @galievramil1169 3 ปีที่แล้ว

      Есть такое свойство, length у массивов, сколько элементов добавилось в массив по клику, значит столько и товара... Александра обожаю, но здесь бы я делал через индексный массив, без ассоциативных ключей

  • @IgorBobyrev
    @IgorBobyrev ปีที่แล้ว

    Здравствуйте, спасибо большое за урок! У меня два вопроса:
    1. В функции уменьшения кол-ва товара зачем возвращать true?
    2. В функции удаления, я вот прочитал, что если использовать delete, удаляется объект, но не элемент массива. То есть общее количество элементов в массиве остается таким же. Если же использовать splice, то количество элементов в массиве уменьшается и объект со следующим индексом заменяет удаляемый. Это в данном случае имеет какую-то роль? Это когда важно?

  • @bergetsmoro
    @bergetsmoro 4 ปีที่แล้ว +4

    Прохожу курсы от GeekBrains и надо сказать вы поясняет просто великолепно, там так не разжевывают и как то все быстро и не понятно, приходится заходить к вам на канал.

    • @Varg7547
      @Varg7547 ปีที่แล้ว

      купил курс по "javascript разработчик " на GB, идет 3-й месяц , все что угодно изучаем но не JS , вот такие пироги XD

    • @Sevastpolko
      @Sevastpolko หลายเดือนก่อน

      @@Varg7547закончил курс?

  • @youtubeyh
    @youtubeyh 4 ปีที่แล้ว

    Здравствуйте, делал корзину по вашему старому уроку, не подскажите пожалуйста, когда жму минус, вычитываю количество товара в корзине, то если значение доходит до 0, после оно идёт в минус, подскажите пожалуйста, как это можно исправить?Чтобы при значении ниже 1, либо удалялся товар из корзины, либо перекидывало на главную страницу сайта.Буду очень благодарен если ответите! =)
    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    var cart = {};
    function loadCart() {
    //Проверка есть ли в localStorage запись cart
    if (localStorage.getItem('cart')) {
    //если есть - расшифровываю и записываю в переменную cart
    cart = JSON.parse(localStorage.getItem('cart'));
    console.log(isEmpty(cart));
    showCart();
    }
    else {
    $('.main-cart').html('Корзина пуста!');
    }
    }
    function showCart() {
    if (!isEmpty(cart)) {
    $('.main-cart').html('Корзина пуста!')
    }
    else {
    $.getJSON('goods.json', function (data) {
    var goods = data;
    var out = '';
    for (var id in cart) {
    out += `x`;
    out += ``;
    out += ` ${goods[id].name }`;
    out += ` -` ;
    out += `${cart[id] }`;
    out += ` +` ;
    out += cart[id]*goods[id].cost;
    out += '';
    }
    $('.main-cart').html(out);
    $('.del-goods').on('click', delGoods);
    $('.plus-goods').on('click', plusGoods);
    $('.minus-goods').on('click', minusGoods);
    });
    }
    }
    function delGoods() {
    //Удаляем товар из корзины
    var id = $(this).attr('data-id');
    delete cart[id];
    saveCart();
    showCart();
    }
    function plusGoods() {
    //Добавляем товар в корзину
    var id = $(this).attr('data-id');
    cart[id]++;
    saveCart();
    showCart();
    }
    function minusGoods() {
    //Уменьшаем товар в корзине
    var id = $(this).attr('data-id');
    if (cart[id==1]) {
    delete cart[id];
    }
    else {
    cart[id]--;
    }
    cart[id]--;
    saveCart();
    showCart();
    }
    function saveCart() {
    //Сохраняю корзину в localStorage
    localStorage.setItem('cart', JSON.stringify(cart));//Корзину в строку
    }
    function isEmpty(object) {
    //Проверка корзины на пустоту
    for (var key in object)
    if (object.hasOwnProperty(key)) return true;
    return false;
    }
    $(document).ready(function () {
    loadCart();
    });

  • @cardinalswift4828
    @cardinalswift4828 3 ปีที่แล้ว

    Один из лучших каналов о JavaScript на ютубе. Очень интересно смотреть!

  • @Dmitry_Grudinin
    @Dmitry_Grudinin 2 ปีที่แล้ว

    Очень классно и понятно. у человека дар объяснять.

  • @v_argun
    @v_argun 3 ปีที่แล้ว

    3:40

  • @МухаммадАзимов-е4в
    @МухаммадАзимов-е4в 2 ปีที่แล้ว

    Если нажать + - + дает ошибку

  • @alexkogotko3981
    @alexkogotko3981 4 ปีที่แล้ว +1

    Такой вопрос на реальном проект это должен делать фронтендер или это бэк. А вы это делали как пример для практики ?

    • @itgid
      @itgid  4 ปีที่แล้ว +1

      бек только принимает результирующий массив. А фронт делает всю логику.

    • @Polite_person_
      @Polite_person_ 4 ปีที่แล้ว +2

      ​@@itgid Учу фронт около года и в принципе с типичными задачами все более менее понятно, даже в связке с React и Redux, но вот есть ощущение что я пол программиста, потому что не знаю бекенд и очень хочется писать фулстек приложения, посоветуйте что перспективнее и вообще лучше для бекенда? Node.js, PHP или Python jungo ? Понятно что все хостинги умеют работать c PHP без костылей, но все же? Что лучше учить? А может полезнее и лучше вообще не распыляться и практиковаться дальше во фронте? В общем нужен совет опытного человека =)

    • @itgid
      @itgid  4 ปีที่แล้ว +5

      @@Polite_person_ если галера - то js+react и не распылаться. Если фриланс то js + php, а потом node.

    • @Polite_person_
      @Polite_person_ 4 ปีที่แล้ว

      @@itgid Спасибо!

    • @dg9054
      @dg9054 4 ปีที่แล้ว +1

      Александр, скажите можно ли обойти работу на галере, будучи джуном? Понятно что кто то через знакомых может находить клиентов. Слышал реальную историю. Сейлз (или менеджер) заработав себе нормальный уровень на апворке через компанию, на которой работал. Спустя два года ушел из компании, а вместе с ним и программист, который с ним работал. И они сейчас сами себе компания. Ну это еденичные случае. Какой прогноз вы могли бы сделать для джуна, есть ли у него перспективы без галеры?

  • @MrUnknownman1986
    @MrUnknownman1986 2 ปีที่แล้ว

    3:40

  • @ВитяПрограммирует
    @ВитяПрограммирует 2 ปีที่แล้ว

    3:40 скриммер

  • @glebkabayjanov5646
    @glebkabayjanov5646 4 ปีที่แล้ว

    найс

  • @luckyrobot3688
    @luckyrobot3688 3 ปีที่แล้ว

    Как перезаписать HTML по клику может кто ни будь сказать чтобы кликнуть сначала все удалилось и ту даже записались новые данные?

    • @andrewivan5423
      @andrewivan5423 3 ปีที่แล้ว +1

      input.addEventListener('click', (e) => {
      e.target.value = ''
      })

  • @ondrui
    @ondrui 3 ปีที่แล้ว

    классное объяснение и код на удивление простой. Спасибо автору!!!

  • @shumashok
    @shumashok 2 ปีที่แล้ว

    Отлично, теперь вопрос. Как сделать вывод товаров, чтобы они отображались в корзине вместе с количеством?

    • @itgid
      @itgid  2 ปีที่แล้ว +1

      В курсах реакт и node делаем такое

  • @qweex-6498
    @qweex-6498 4 ปีที่แล้ว +1

    Спасибо

    • @itgid
      @itgid  4 ปีที่แล้ว +1

      гуд

  • @Tiberiumgod
    @Tiberiumgod 4 ปีที่แล้ว

    А не сильно затратное дело клики по всему документу отслежывать? Или это самый простой способ?

    • @itgid
      @itgid  4 ปีที่แล้ว +3

      Ребята делайте скидку, что это обучение. Я упускаю многие вещи - просто потому, что на экране их не вместишь и за 10 минут не расскажешь.

  • @MarioDev
    @MarioDev 4 ปีที่แล้ว

    хороший урок

  • @dimageorgiev5798
    @dimageorgiev5798 4 ปีที่แล้ว

    👍😀

  • @evgenika7472
    @evgenika7472 2 ปีที่แล้ว

    Просто супер. Спасибо!

  • @VIJana79
    @VIJana79 4 ปีที่แล้ว +2

    Ко второй минуте только врубилась, что речь идёт не о корзине для ненужных файлов.

  • @goalfootball5523
    @goalfootball5523 4 ปีที่แล้ว

    Спасибо

  • @antonpodash2477
    @antonpodash2477 4 ปีที่แล้ว +5

    Очень доступно и понятно все, спасибо вам!

    • @itgid
      @itgid  4 ปีที่แล้ว

      Спасибо

  • @truedivan
    @truedivan 4 ปีที่แล้ว

    отлично =)

  • @СергейИахин
    @СергейИахин 4 ปีที่แล้ว

    А сколько вам лет?

  • @MM-mi7oh
    @MM-mi7oh 4 ปีที่แล้ว +1

    Аа где прибавления ?

  • @МихаилКоробицин-к2п
    @МихаилКоробицин-к2п 4 ปีที่แล้ว

    Каким образом артикул товара окажется в data-id кнопок?