![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 7.01.2010 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Witam, jestem początkujący w dziedzinie JavaScriptu i mam pewien problem, będę wdzięczny za pomoc.
Zadaniem skryptu, który napisałem, jest pobranie danych poprzez Ajax, a następnie utworzenie diva i umieszczenie w nich tych danych. Skrypt działa prawidłowo, jest on wykonywany po kliknięciu w odnośnik (zdarzenie onClick). Problem polega na tym, że przy kilkukrotnym szybkim kliknięciu w ten odnośnik tworzy się więcej niż 1 div. Próbowałem sprawdzać przed wykonaniem kodu czy obiekt, który tworzę już istnieje, jednakże nie odniosło to skutku.
Będę wdzięczny za wskazanie możliwości rozwiązania problemu, pozdrawiam Mateusz Bartkowiak |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
ech - nie ma całości kodu a w ajaxie mało robiłem ale z tego co widzę 2 razy wywołałeś funkcję która w środku czeka dopiero na odpowiedź asynchronicznego ajaxa wywołując funkcję do_ajax() w której jest jakiś return (dlatego jest w porządku jeśli wolniej klikniesz) - zamiast sprawdzać, czy został utworzony już obiekt to na początku funkcji przypisz wartość jakiejś zmiennej będącej w zasięgu tej funkcji jednak poza nią - zrób jakiś kontroler czy już funkcja została wywołana i jeśli została wywołana przerwij działanie funkcji - na 99% to rozwiąże problem...
lub nie wiem jak masz podpięte zdarzenie, czy przez samą metodę .onclick - jeśli tak to na poczatku wywołania pierwszy raz funkcji wyzeruj tą metodę, a jeśli przez .addEventListener to zastosuj .removeEventListener |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 7.01.2010 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Witam, dziękuję za odpowiedź, chyba udało mi się rozwiązać problem. Korzystałem już wcześniej ze zmiennej, która określała, czy obiekt jest aktualnie schowany czy pokazany, jednak nie dawało to zamierzonego efektu, w przypadku gdy kliknięcia następowały bardzo szybko po sobie. Wygląda na to, że działo się tak dlatego, ponieważ przypisanie do zmiennej wartości informującej o wywołaniu funkcji następowało dopiero po pobraniu danych przez Ajaxa, a kolejne kliknięcia następowały przed pierwszym przypisaniem wartości do zmiennej.
Pozdrawiam, Mateusz Bartkowiak |
|
|
![]() ![]() |
![]() |
Aktualny czas: 2.10.2025 - 21:36 |