Тёмный

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

WebDev с нуля. Канал Алекса Лущенко
Просмотров 79 тыс.
50% 1

Курс JavaScript 2.0: itgid.info/course/javascript-2
Мои курсы: itgid.info/
Телеграмм канал JSRules: t.me/jsrules
Я в телеграмм: @alex_luschenko

Опубликовано:

 

16 апр 2020

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 91   
@tandev713
@tandev713 4 года назад
На 6:42 "Теперь меня не остановить" - смеялся долго! Александр, чувство юмора - это очень хороший показатель человечности! Благодарю за ваш труд!
@Bob3r1245
@Bob3r1245 4 года назад
Классные уроки, все подробно и доходчиво. Спасибо.
@vasya8441
@vasya8441 4 года назад
Хорошее видео, за один урок узнал больше чем за прохождение разных курсов там)
@user-fx3mk3ph1n
@user-fx3mk3ph1n 2 года назад
Теперь меня не остановить.😁😁😁 Спасибо! Вы супер
@cardinalswift4828
@cardinalswift4828 3 года назад
Один из лучших каналов о JavaScript на ютубе. Очень интересно смотреть!
@user-qq3ry8ql4v
@user-qq3ry8ql4v 3 года назад
Спасибо, очень полезный урок для начинающего!
@dg9054
@dg9054 3 года назад
Преподаватель от Бога! По хорошему завидую вашим студентам
@ondrui
@ondrui 3 года назад
классное объяснение и код на удивление простой. Спасибо автору!!!
@Dmitry_Grudinin
@Dmitry_Grudinin Год назад
Очень классно и понятно. у человека дар объяснять.
@evgenika7472
@evgenika7472 2 года назад
Просто супер. Спасибо!
@amanrozyev5527
@amanrozyev5527 3 года назад
Спасибо за труд. Было бы неплохо добавить счётчик и кнопку добавить в корзину.
@awenn2015
@awenn2015 4 года назад
Теперь после этого задумался сделать крутую корзину на ajax с занесением в глобальный массив Cart[ ], как раз по практикую ООП, я конечно на нем до этого никогда не писал но начинать то надо когда то))
@yakliker907
@yakliker907 4 года назад
Спасибо огромное!!!!!!
@igroman-toys
@igroman-toys 2 года назад
Мое почтение! Александр, а вы занимаетесь платной разработкой? Мне необходимо в PWA для интернет-магазина реализовать правильную политику кеширования (статика добавляется при просмотре странички пользователем на длительный срок, цены и наличие каждый день)по этому менять для контента версию кеша когда остатки меняются и корзину офлайн(реализация подразумевает что без подключения к интернету покупателю удастся оформить заказ в PWA, а как только интернет появится сервис воркер отправит его на сервер) на данный момент в любой непонятной ситуации будет заглушка с просьбой подключить интернет.
@antonpodash2477
@antonpodash2477 4 года назад
Очень доступно и понятно все, спасибо вам!
@itgid
@itgid 4 года назад
Спасибо
@wolfplay7413
@wolfplay7413 3 года назад
Скажите , а как потом эту корзину добавить на другую страницу? ( в свой магазин) Страница сделана на конструкторе гугл сайтов. Куда потом этот код (корзина) вписывать???
@mzking1536
@mzking1536 4 месяца назад
Топ контент подъехал но для чайников будет тяжеловато)))
@user-rm7pt1rv3s
@user-rm7pt1rv3s 3 года назад
Очень доступное объяснение, спасибо. А как правильно сделать если я хочу ещё считать не только количество а ещё и сумму товаров в корзине? Понятно, что в объект добавить поле price, а вот с самой функцией которая сумму посчитает не совсем понятно???
@Shiwchik
@Shiwchik 3 года назад
Ваще огонь!
@DIMANVAZ04
@DIMANVAZ04 2 года назад
У вас ещё и по НОДЕ курс? да вы просто лучший, господи
@valerykhilinski6477
@valerykhilinski6477 2 года назад
а если в каталоге с товаром добавить иинпут с количеством, как его обработать?
@mykhailobokalo6037
@mykhailobokalo6037 4 года назад
Спасибо!)
@itgid
@itgid 4 года назад
гуд
@hayk1434
@hayk1434 2 года назад
А как переместить с одной корзины в другую. есть ролик по этой теме ?
@DK-fg8sl
@DK-fg8sl 4 года назад
Спасибо Александр за работу!!! Когда нибудь покажите, как сделать счетчик в корзине, при добавлении товара, чтобы в шапке меню рядом с иконкой корзины появлялось количество.
@itgid
@itgid 4 года назад
найти сумму элементов массива - это обычный цикл.
@DK-fg8sl
@DK-fg8sl 4 года назад
@@itgid СПАСИБО!
@galievramil1169
@galievramil1169 3 года назад
Есть такое свойство, length у массивов, сколько элементов добавилось в массив по клику, значит столько и товара... Александра обожаю, но здесь бы я делал через индексный массив, без ассоциативных ключей
@user-zk9pe2gk6h
@user-zk9pe2gk6h 2 года назад
Пожалуйста скажите какие лекарства есть в продаже узбекистана длч улучшения памяти
@chatbotsetup
@chatbotsetup 4 года назад
Добрый день мне нужно создать такую корзину только для чат-бота telegram с использованием конструктора с возможность встраивание действие code на js, только базу данных я беру с google sheets Вопрос этот код можно применить?
@bergetsmoro
@bergetsmoro 3 года назад
Прохожу курсы от GeekBrains и надо сказать вы поясняет просто великолепно, там так не разжевывают и как то все быстро и не понятно, приходится заходить к вам на канал.
@Varg7547
@Varg7547 Год назад
купил курс по "javascript разработчик " на GB, идет 3-й месяц , все что угодно изучаем но не JS , вот такие пироги XD
@truedivan
@truedivan 4 года назад
отлично =)
@MarioDev
@MarioDev 4 года назад
хороший урок
@goalfootball5523
@goalfootball5523 3 года назад
Спасибо
@Tiberiumgod
@Tiberiumgod 4 года назад
А не сильно затратное дело клики по всему документу отслежывать? Или это самый простой способ?
@itgid
@itgid 4 года назад
Ребята делайте скидку, что это обучение. Я упускаю многие вещи - просто потому, что на экране их не вместишь и за 10 минут не расскажешь.
@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(); });
@youtubeyh
@youtubeyh 4 года назад
Эх...
@rami8640
@rami8640 Год назад
направьте, пожалуйста, на видео про renderCart()
@shumashok
@shumashok Год назад
Отлично, теперь вопрос. Как сделать вывод товаров, чтобы они отображались в корзине вместе с количеством?
@itgid
@itgid Год назад
В курсах реакт и node делаем такое
@js_games_for_dummies
@js_games_for_dummies 11 месяцев назад
Еcли товар убрать и потом снова нажать минус -- товар появляется с количествам NAN.
@user-iz5ce4hy4s
@user-iz5ce4hy4s 4 года назад
Здравствуйте,я не много не понял зачем вы делали переменную которая возвращает функцию,ведь можно написать функцию
@itgid
@itgid 4 года назад
можно. Просто и такой способ существует. Чтобы не застаиваться.
@Tiberiumgod
@Tiberiumgod 4 года назад
@@vanya_hrynkiv но она существенна
@s-form2435
@s-form2435 Год назад
и как же вывести вот это все через innerHTML?
@user-bq4mb3zg7h
@user-bq4mb3zg7h 2 года назад
Помогите, что делать, когда я полностью удаляю товар с корзины и добавляю назад у меня вместо числа Nan
@Mstiyar
@Mstiyar Год назад
Сделать проверку есть ли такой id. Если нет добавить с количеством 1, если есть увеличить на 1
@alexkogotko3981
@alexkogotko3981 4 года назад
Такой вопрос на реальном проект это должен делать фронтендер или это бэк. А вы это делали как пример для практики ?
@itgid
@itgid 4 года назад
бек только принимает результирующий массив. А фронт делает всю логику.
@Polite_person_
@Polite_person_ 4 года назад
​@@itgid Учу фронт около года и в принципе с типичными задачами все более менее понятно, даже в связке с React и Redux, но вот есть ощущение что я пол программиста, потому что не знаю бекенд и очень хочется писать фулстек приложения, посоветуйте что перспективнее и вообще лучше для бекенда? Node.js, PHP или Python jungo ? Понятно что все хостинги умеют работать c PHP без костылей, но все же? Что лучше учить? А может полезнее и лучше вообще не распыляться и практиковаться дальше во фронте? В общем нужен совет опытного человека =)
@itgid
@itgid 4 года назад
@@Polite_person_ если галера - то js+react и не распылаться. Если фриланс то js + php, а потом node.
@Polite_person_
@Polite_person_ 4 года назад
@@itgid Спасибо!
@dg9054
@dg9054 3 года назад
Александр, скажите можно ли обойти работу на галере, будучи джуном? Понятно что кто то через знакомых может находить клиентов. Слышал реальную историю. Сейлз (или менеджер) заработав себе нормальный уровень на апворке через компанию, на которой работал. Спустя два года ушел из компании, а вместе с ним и программист, который с ним работал. И они сейчас сами себе компания. Ну это еденичные случае. Какой прогноз вы могли бы сделать для джуна, есть ли у него перспективы без галеры?
@Evgeniy_Kachan
@Evgeniy_Kachan 4 года назад
Спасибо! Класс!
@user-lb8fv4xk5u
@user-lb8fv4xk5u 8 месяцев назад
Я в шоке, неделю пытался сам сделать корзину, уходило под 100 строк и нихера не работало, а тут так легко и понятно, аж грустно что я такой идиот
@user-pp1yx4tq1i
@user-pp1yx4tq1i 4 года назад
У вас баг на сайте: там, где раздел курсы по этой itgid.info/ ссылке, находится 4 курса, и , если навести мышкой после четвертого курса, то выделяться будут сначала первый курс(NodeJs) , а потом второй(если провести дальше)(React.lite Level).Ну или у меня баг)
@itgid
@itgid 4 года назад
У меня. Все сделать руки не доходят. Спасибо.
@IgorBobyrev
@IgorBobyrev 11 месяцев назад
Здравствуйте, спасибо большое за урок! У меня два вопроса: 1. В функции уменьшения кол-ва товара зачем возвращать true? 2. В функции удаления, я вот прочитал, что если использовать delete, удаляется объект, но не элемент массива. То есть общее количество элементов в массиве остается таким же. Если же использовать splice, то количество элементов в массиве уменьшается и объект со следующим индексом заменяет удаляемый. Это в данном случае имеет какую-то роль? Это когда важно?
@non_traditional_gardening
@non_traditional_gardening 11 месяцев назад
Напишите код.
@user-jq9sq7rv3z
@user-jq9sq7rv3z 2 года назад
Если нажать + - + дает ошибку
@luckyrobot3688
@luckyrobot3688 3 года назад
Как перезаписать HTML по клику может кто ни будь сказать чтобы кликнуть сначала все удалилось и ту даже записались новые данные?
@andrewivan5423
@andrewivan5423 3 года назад
input.addEventListener('click', (e) => { e.target.value = '' })
@MrSlavjon
@MrSlavjon 4 года назад
Благодарю!
@itgid
@itgid 4 года назад
рад!
@user-ph8up8se8k
@user-ph8up8se8k 4 года назад
Каким образом артикул товара окажется в data-id кнопок?
@user-wh8ww5lp2l
@user-wh8ww5lp2l 4 года назад
Когда html сервер будет генерировать тогда и добавит.
@user-ve8om5zg3s
@user-ve8om5zg3s 3 года назад
Для новичков и понимания хорошо, но использовать в реальном проекте нельзя. Требуется совсем другой подход и в итоге у вас очень много похожего кода, которой делает примерно тоже самое. И если скорость интернета позволяет подгружать скрипт хоть в 20мб, то ресурсы ограничены. Если обучать, так правильно, в любом случаи это лучше, чем можно встретить в "профессиональных" проектах.
@DIMANVAZ04
@DIMANVAZ04 2 года назад
для реальных проектов надо делать Class Cart ? с кучей проверок и асинхронщины?
@brutix80
@brutix80 Год назад
@@DIMANVAZ04 как говорится, самое страшное, кода твой сервис ложится под нагрузкой и клиенты сваливают на другой ресурс. Поэтому и изгаляются разрабы как только можно, чтобы подобного не допустить. Как говорил Цукерберг в "Социальная сеть" : "Фишка фэйсбук в том, что он работает всегда без единого падения"
@user-km8qn6kh5l
@user-km8qn6kh5l 2 года назад
3:40 скриммер
@dimageorgiev5798
@dimageorgiev5798 4 года назад
👍😀
@user-yd7qs2le1e
@user-yd7qs2le1e 3 года назад
А сколько вам лет?
@graphicsmods8750
@graphicsmods8750 3 года назад
15
@Andrey_Mendel
@Andrey_Mendel 7 месяцев назад
Цікаво і корисно. Шукаю, як зробити корзину на магазин))
@VIJana79
@VIJana79 4 года назад
Ко второй минуте только врубилась, что речь идёт не о корзине для ненужных файлов.
@MM-mi7oh
@MM-mi7oh 3 года назад
Даваи даи нам код пжж прашу тибя !!😭😞
@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); } А если не удалять вторым скриптом появляются дубли товаров, почему при удалении перестает все работать
@glebkabayjanov5646
@glebkabayjanov5646 4 года назад
найс
@v_argun
@v_argun 3 года назад
3:40
@froststorm77
@froststorm77 4 года назад
Я б зробив if(!cart[id]) так чистіше. А ще для виводу об'єктів дуже зручно використовувати console.table(cart).
@itgid
@itgid 4 года назад
да, согласен, но у меня обучающий канал, и я делаю упор на понимании, а не на меньшем коде.
@MM-mi7oh
@MM-mi7oh 3 года назад
Аа где прибавления ?
@sergeydemjanchyk
@sergeydemjanchyk 4 года назад
Все хорошо, только не массив, а хеш либо объект.
@const1525
@const1525 4 года назад
Кто словил скримера лайк
@qweex-6498
@qweex-6498 4 года назад
Спасибо
@itgid
@itgid 4 года назад
гуд
@MrUnknownman1986
@MrUnknownman1986 2 года назад
3:40
Далее
Заметили?
00:11
Просмотров 2,9 млн