Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Funkcja wykonywana po zakończeniu funkcji.
Hosiek3210xD
post 12.06.2022, 09:05:44
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 24.05.2022

Ostrzeżenie: (0%)
-----


Mam funkcje ładującą mi pola radio
  1. function LoadField(div, model, send, path, zusatz = null)
  2. {
  3. if($(div).text().length == 0)
  4. {
  5. $.ajax({
  6. url : '?model='+model,
  7. type : 'POST',
  8. data : send,
  9. dataType : 'json',
  10. success : function(json) {
  11. for (i = 0; i < json.length; i++)
  12. {
  13. $(div).append($("<div>").load(path, json[i]));
  14. }
  15. $(div).append($(zusatz));
  16. },
  17. error: function(json) {
  18. }
  19. });
  20. }
  21. }


Wszystko pięknie ładnie jednak musze zrobic funkcje która zrobi się dopiero po zakonczeniu tej, czyli po załadowaniu pol radio. Obecnie próbuje to w ten sposób.
  1. LoadField('#farbe', 'AufgabeFarbeFahrzeug', 0, module_path_5, zusatz, function(){
  2. console.log('dziala');
  3. });


Wiem ze callback jest w funkcjach standardowych takich jak np .load ale czy mozna podobnie zrobic na wlasno utworzonej funkcji?

czyli load ma np
  1. $('#load').load(mod_path_1, function() {
  2. console.log('dziala');
  3. });

Go to the top of the page
+Quote Post
trueblue
post 12.06.2022, 10:33:24
Post #2





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Nic nie stoi na przeszkodzie, aby przekazać funkcję jako kolejny argument do funkcji LoadField i wywołać ją w success.


--------------------
Go to the top of the page
+Quote Post
viking
post 12.06.2022, 10:33:24
Post #3





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1113
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


https://developer.mozilla.org/pl/docs/Web/J...Objects/Promise


--------------------
Go to the top of the page
+Quote Post
Hosiek3210xD
post 12.06.2022, 15:15:53
Post #4





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 24.05.2022

Ostrzeżenie: (0%)
-----


Cytat(trueblue @ 12.06.2022, 11:33:24 ) *
Nic nie stoi na przeszkodzie, aby przekazać funkcję jako kolejny argument do funkcji LoadField i wywołać ją w success.

Musiałbym przeslac sporą ilość danych... ale udało mi sie jednak podobnie, czyli dorobiłem wlasny callback wywolywany w funkcji.
Mam obecnie teraz tak
  1. function LoadField(div, model, send, path, zusatz = null, callback)
  2. {
  3. if($(div).text().length == 0)
  4. {
  5. $.ajax({
  6. url : '?model='+model,
  7. type : 'POST',
  8. data : send,
  9. dataType : 'json',
  10. success : function(json) {
  11. for (i = 0; i < json.length; i++)
  12. {
  13. $(div).append($("<div>").load(path, json[i], function() {
  14. callback();
  15. }));
  16. }
  17. $(div).append($(zusatz));
  18. },
  19. error: function(json) {
  20. }
  21. });
  22. }
  23. }


a z drugiej strony
  1. LoadField('#farbe', 'AufgabeFarbeFahrzeug', 0, module_path_5, zusatz, function(){console.log('dziala')});


i smiga wszystko smile.gif Ale mimo tego dziekuje za propozycje smile.gif

Cytat(viking @ 12.06.2022, 11:33:24 ) *

Ja pracuje całkowicie w jQuery wiec nie chce mieszać do tego obiektówki JS.
Go to the top of the page
+Quote Post
viking
post 12.06.2022, 17:50:03
Post #5





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1113
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


A jquery to nie js? A wiesz że zdarzenia ajaxowe jquery to właśnie promise?


--------------------
Go to the top of the page
+Quote Post
trueblue
post 12.06.2022, 20:40:10
Post #6





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Cytat(Hosiek3210xD @ 12.06.2022, 16:15:53 ) *
Musiałbym przeslac sporą ilość danych... ale udało mi sie jednak podobnie, czyli dorobiłem wlasny callback wywolywany w funkcji.

Chyba nie zauważyłeś, że nie zrobiłeś podobnie, ale właśnie dokładnie tak jak sugerowałem.
Wobec powyższego nie ma sensu rozważanie co miałeś na myśli pisząc o "sporej ilości danych".


--------------------
Go to the top of the page
+Quote Post
Hosiek3210xD
post 12.06.2022, 22:42:09
Post #7





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 24.05.2022

Ostrzeżenie: (0%)
-----


Wybaczcie jestem tylko programistą Hobbistycznym.

Nigdy nie miałem styczności ze szkołą w tym kierunku.

W Każdym razie problem rozwiązany i bardzo dziękuje za pomoc.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.03.2024 - 09:33