Zmiana ilości PLUS i MINUS z kontrolą bilansu.

0

Szukam rozwiązania problemu. Jestem kiepski w JS więc szukam pomocy.

Mam tabele:

Nazwa Ilość
Typ 1 20
Typ 2 40
Typ 3 60

i teraz chciałbym dodać możliwość zmiany ILOŚĆ za pomocą + i -.

Nazwa Ilość
Typ 1 +20-
Typ 2 +40-
Typ 3 +60-

jednak z możliwością kontroli bilansu (jesli wezmiemy z jednego to mozemy dodać to samo do innego) i jeśli bilans jest inny niż 0 to pojawia się dodatkowy wiersz z bilansem.

Nazwa Ilość
Pozostało 30
---------------- ----------------
Typ 1 +20-
Typ 2 +10-
Typ 3 +60-

No i teraz wiem jak zmienić ilości w danym wierszu, jednak nie wiem jak kontrolować bilans i wyświetlenie wiersza z bilansem.

0

Pokaż co masz zrobione

0

Hej!

Troszkę wczoraj "pogrzebałem" i trochę zmieniłem ale sens ten sam:

<div><a href="#plus" class="up">+</a>
    <div class="licznik">50</div><a href="#minus" class="down">-</a>
</div>
<div><a href="#plus" class="up">+</a>
    <div class="licznik">50</div><a href="#minus" class="down">-</a>
</div>
<div><a href="#plus" class="up">+</a>
    <div class="licznik">50</div><a href="#minus" class="down">-</a>
</div>
<div><a href="#plus" class="up">+</a>
    <div class="licznik">50</div><a href="#minus" class="down">-</a>
</div>
<div><a href="#plus" class="up">+</a>
    <div class="licznik">50</div><a href="#minus" class="down">-</a>
</div>BILANS:
<div class="bilans">0</div> 

teraz JS

$('.up').click(function () {
    var wartosc = $(this).closest('div').children('.licznik');
    var bilans = $('.bilans').text();

    if (bilans > 0) {
        up = parseInt(wartosc.html()) + 10;
        bilans = parseInt(bilans) - 10;
        wartosc.html(up);
    }

    $('.bilans').text(bilans);
});

$('.down').click(function () {
    var wartosc = $(this).closest('div').children('.licznik');
    var bilans = $('.bilans').text();

    if (wartosc.html() > 0) {
        up = parseInt(wartosc.html()) - 10;
        bilans = parseInt(bilans) + 10;
    }
    wartosc.html(up);
    $('.bilans').text(bilans);
});

no i wszystko działa na http://jsfiddle.net/ jednak nie działa u mnie na stronie.

Dodałem jQuery 1.8.3.

I teraz nie mam pojęcia dlaczego nie działa.

0

zajrzyj w konsolę - na pewno tam masz jakiś błąd.

albo zalinkuj do tej Twojej strony, to zbadamy problem

0
Uncaught exception: TypeError: '$' is not a function
Error thrown at line 101, column 0 in http://partnersclub.pl/temp.html:
    $('.up').click(function () {

// oraz to:
[cycle] terminating; too few slides: 0                   jquery.cycle.all.min.js:24
[cycle] terminating; too few slides: 0                   jquery.cycle.all.min.js:24

zaglądaj w konsolę!

poczytaj o document ready w jQuery

0

Niestety zaglądam w konsolę ... jednak nie rozumiem znajdujących się tam błędów.
Wpisuję na StackOverflow itp. ale nadal jestem w czarnej du...

Najbardziej mnie zastanawia dlaczego skrypt działa na http://jsfiddle.net/ bez problemów...

Co do document ready to nie bardzo wiem jak to ugryźć konkretnie do tego skryptu.

$(document).ready(function() {

    //tutaj mój skrypt ???

})

Czy wywołuję te funkcje w złym miejscu na stronie ??

Czy powinienem wstawić to w HEAD czy w BODY ???

Nie wiem!

0

otocz ten Twój kod tym, co napisałeś w poście wyżej i będzie działać.

ALE !!!!!!!!!!!!!!!!!!!!!!
pierwsze poczytaj DLACZEGO to tak jest. Nie przeklejaj bezmyślnie przykładów, bo nigdy nie nauczysz się programować.

jsfiddle domyślnie otacza Twój kod czymś takim, więc działa.

0
dzek69 napisał(a):

otocz ten Twój kod tym, co napisałeś w poście wyżej i będzie działać.

<script type="text/javascript">
$(document).ready(function() {

    $('.up').click(function () {
        var wartosc = $('.mini12').closest('div').children('.licznik');
        var bilans = $('.bilans').text();

        if (bilans > 0) {
        up = parseInt(wartosc.html()) + 10;
        bilans = parseInt(bilans) - 10;
        wartosc.html(up);
        }

        $('.bilans').text(bilans);
    });

    $('.down').click(function () {
        var wartosc = $('.mini12').closest('div').children('.licznik');
        var bilans = $('.bilans').text();

        if (wartosc.html() > 0) {
        up = parseInt(wartosc.html()) - 10;
        bilans = parseInt(bilans) + 10;
        }
        wartosc.html(up);
        $('.bilans').text(bilans);
    });

});
</script>

no i nie działa!

0

masz jakieś dziwne jQuery które ustawia tryb noConflict, powodujący, że funkcje jQuery nie są dostępne znakiem dolara, tylko trzeba pisać jQuery(selektor).funkcja()

zamień to na normalne jquery

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0