• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

funkcja js/jq wszystko działa do momentu

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
0 głosów
273 wizyt
pytanie zadane 12 września 2015 w JavaScript przez makoso Mądrala (7,380 p.)

Witajcie mam funkcję w której wszystko szło pięknie do momentu wywołania ostatniego skryptu ajaxem -.- jakieś sugeste? chodzi o linijkę nr 21

function buy(id) {
    $.post("game/queries/player.php", function (player_info) {
        var player = jQuery.parseJSON(player_info);
        $.post("game/queries/userstats.php", function (user_info) {
            var user = jQuery.parseJSON(user_info);
            $.post("game/queries/item.php?id=" + id, function (item_info) {
                var item = jQuery.parseJSON(item_info);
                var divs = '<div class="msg_js" onclick="my_remove(\'msg_js\')">';
                var dive = '</div>';
                var msg;
                msg='Wystąpił błąd spróbuj jeszcze raz';
                if(player.class                 == item.allow_character1
                    || player.class             == item.allow_character2
                    || player.class             == item.allow_character3
                    || item.allow_character1    == 0
                    || item.allow_character2    == 0
                    || item.allow_character3    == 0
                ) {
                    if (user.lvl >= item.allow_lvl) {
                        if (user.gold >= item.cost_gold) {
                            $.post("game/queries/buyitem.php?id=" + item.ID_item, function (data_info) {
                                msg =data_info;
                            });
                        } else {
                            var want_gold = item.cost_gold - user.gold;
                            msg = 'Nie stać Cię na zakup<br/>' + item.item_name + '<br/>Brakuje Ci ' + want_gold + ' złota';
                        }
                    } else {
                        msg = 'Aby kupić ten przedmiot musisz zdobyć ' + item.allow_lvl + ' poziom';
                    }
                } else {
                    msg = 'Ten przedmiot nie jest przeznaczony dla twojej klasy postaci';
                }


                $(divs + msg + dive).appendTo($(".max_width"));
                setTimeout(function () {
                    $('.msg_js').fadeOut(1000, function () {
                        this.remove();
                    });
                }, 1500);
            });
        });
    });
}

 

1 odpowiedź

+1 głos
odpowiedź 12 września 2015 przez Comandeer Guru (607,060 p.)
wybrane 12 września 2015 przez makoso
 
Najlepsza
Bo nie kapujesz asynchroniczności ;) http://webroad.pl/javascript/746-synchroniczna-asynchronicznosc

Jeśli to ma działać, to najłatwiej konstrukcję wiadomości przenieść do callbacku Ajaksowego.
komentarz 12 września 2015 przez makoso Mądrala (7,380 p.)
Dzięki za podpowiedź, już kiedyś mi o tym pisałeś ale tak się zapędziłem i myślałem ze powinno działać :)
komentarz 12 września 2015 przez makoso Mądrala (7,380 p.)

A mógłbyś rozwinąć tę myśl "callback Ajaksowy"

bo tak czytam i nie wiem ale czy moja zmienna np data_info nie jest callback-em?

komentarz 12 września 2015 przez Comandeer Guru (607,060 p.)
Callback to funkcja wywoływana, gdy żądanie jest zakończone. I tam należy zrobić to, co chcesz zrobić.

Nie, zmienna nie jest callbackiem.
komentarz 12 września 2015 przez makoso Mądrala (7,380 p.)
Poskromione ;) dzieki za pomoc :)
jeszcze miałbym jedno pytanie czy istnieje funkcja/sposób/polecenie które definitywnie przerwie wykonywanie się funkcji? return 0 nie działa (chodzi tutaj o zastosowanie wenątrz ajax-u ale tak aby zatrzymało całą funkcję :)
komentarz 12 września 2015 przez Comandeer Guru (607,060 p.)

Nie ma, bo return nie działa. Musiałbyś wywołać jakąś metodę anulującą żądanie.

komentarz 13 września 2015 przez makoso Mądrala (7,380 p.)
Dzięki :)
P.S nie dostałem żadnego pobocznego opierdzielu za kod ^^ yupi ;)

Podobne pytania

0 głosów
1 odpowiedź 230 wizyt
pytanie zadane 23 listopada 2015 w JavaScript przez makoso Mądrala (7,380 p.)
0 głosów
1 odpowiedź 250 wizyt
pytanie zadane 8 grudnia 2016 w JavaScript przez hoktaur Pasjonat (22,250 p.)
+1 głos
1 odpowiedź 184 wizyt
pytanie zadane 24 marca 2016 w JavaScript przez CzlowiekSkrypt Nałogowiec (26,340 p.)

93,434 zapytań

142,429 odpowiedzi

322,662 komentarzy

62,797 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

...