Jquery multielements cal

Post Reply
novakabg
Турист
Турист
Posts: 337
Joined: Fri May 13, 2016 12:29 pm
Contact:

Jquery multielements cal

Post by novakabg » Fri Jul 20, 2018 12:32 pm

Здравейте, имам нужда от помощ за един код.

Проблема е следният скъпи приятели: Искам да пресмятам цената на всички но за сега успявам да пресметна цената само на едната пица.

Иска ми се като избера салам на едната пица автоматично да се наложи на останалите пици и да пресметни, успях да наложа размер но явно нещо бъркам с цената или не знам как да го направя.
Благодаря предварително! :)

Линк: http://jsfiddle.net/djfgxzn4/2/

User avatar
anonimen
Много Редовен
Много Редовен
Posts: 1523
Joined: Mon Jun 11, 2012 6:07 pm
Answers: 162
Location: Parse error: unexpected "}" in /home/index.php on line 26

Post by anonimen » Fri Jul 20, 2018 2:20 pm

Вместо да се мъчиш със синхронизацията на сто различни селекта (защото едва ли ще имаш само 2 пици), изнеси един селект най-отгоре и махни останалите.
При неговия onchange event ще изцикляш всички пици, и ще прилагаш промените.

+ по-удобно ще е и за теб, и за нас, ако скриптът в jsfiddle го сложиш в определената секция. Като го отворих и видях, че няма нищо в JS полето, направо се впечатлих как си го направил без js ;)

User avatar
deam0n
Tourist Defender
Tourist Defender
Posts: 3010
Joined: Sat Oct 01, 2005 4:33 pm
Answers: 204
Location: Шопландия
Contact:

Post by deam0n » Fri Jul 20, 2018 2:23 pm

Направо ми става лошо като видя това jQuery :) :)

Ето ти пример как можеш да направиш подобно нещо с по-малко код, по-красив код и vueJS :)

http://jsfiddle.net/bvypo824/8/

Ето и малко разяснения :)

Зареждаме vueJS, декларираме нов vue instance и го закачаме към html-a с клас vue-container на главния див.

Имаме масиви с обекти pizzas и dobavki.. Имаме обект izbrana_dobavka..

Листаме съответните данни използвайки директивата v-for.

Чрез v-model мапваме стойността на избрания option към обекта izbrana_dobavka.

Чрез v-bind:value задаваме каква стойност да имат option-ите. Съответно в нашия пример ако избереш някой option той приема стойността на някой от обектите в dobavki.

Използвал съм и v-on:click, за да ресетнем izbrana_dobavka до default стойностт-а ако потребител иска да премахне добавката.

И накрая имаме смятаме цената за всяка пица :) Ако използваш float, трябва parseFloat.

Code: Select all

{{ parseInt(pizza.price) + parseInt(izbrana_dobavka.price) }} лв.

novakabg
Турист
Турист
Posts: 337
Joined: Fri May 13, 2016 12:29 pm
Contact:

Post by novakabg » Fri Jul 20, 2018 2:42 pm

Vuejs е уникален и аз лично бих ползвал дори backbone или reactjs скъпи приятели.

Но на мен ми трябва jquery :(

Идеята е че човек ще избера опция и всички продукти ще зареждат автоматично където се предлага тази опция чрез $cookie и цената на дадена пица ще се калкулира спрямо пицата от избора на опцията.

Ето примера поправен: http://jsfiddle.net/djfgxzn4/10/


Проблема е че успявам но браузера пада защото jquery явно не е измислено или аз просто нямам достатачно знания за него и дава maximum заявки и спира :х като с vue и backbone нямам проблем но няма как.

Благодаря за бързият отговор, мислех че няма да пише никой, нали малко замря форума :Х

User avatar
deam0n
Tourist Defender
Tourist Defender
Posts: 3010
Joined: Sat Oct 01, 2005 4:33 pm
Answers: 204
Location: Шопландия
Contact:

Post by deam0n » Fri Jul 20, 2018 3:21 pm

novakabg wrote: като с vue и backbone нямам проблем но няма как.
Само не разбирам защо няма как ?

novakabg
Турист
Турист
Posts: 337
Joined: Fri May 13, 2016 12:29 pm
Contact:

Post by novakabg » Fri Jul 20, 2018 10:18 pm

Целият сайт е набухан с jquery плъгини братле и ако добавя и vue ще стане мазало, тоест сайта е оптимизиран но зарежда за 13 сек и ако добавя и vue ще станат едни дълги и широки. Аз ми се искаше под backbone нали по-точно и бързо и там няма проблем с тези мулти елементи. :)

Post Reply