Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery] Wywołanie okna dialog w innej funkcji
Forum PHP.pl > Forum > XML, AJAX
mikajlo
Witam,
w temacie jestem wczesno początkujący.. Zazwyczaj okno dialogowe 'wyskakuje' po wywołaniu jakiegoś zdarzenia, np. click.

Ja potrzebuje wywołać okno jako potwierdzenie.. np. następuje oddanie użytkownika i potem wyświetlenie informacji.. i to okno chciałem wywołać z innej funkcji, ale coś mi nie wychodzi..

Mam powiedzmy taki kod:

[JAVASCRIPT] pobierz, plaintext
  1. function wywolaj_okno_dialog() {
  2. $('#d').dialog({
  3. autoOpen: false,
  4. bgiframe: true,
  5. modal: true,
  6. title: 'tytul',
  7.  
  8. });
  9. $('#d').dialog('open');
  10. }
  11. $('#item_signup').on('click', function() {
  12. if ($('#id_item').val() == 0) {
  13. alert("You have to select a item");
  14. return false;
  15. }
  16.  
  17. var tour = $('#id_item').val();
  18.  
  19. if (typeof item == 'undefined' || item == 0) {
  20. alert("You have to select a item");
  21. return false;
  22. }
  23.  
  24. $.ajax({
  25. type: 'POST',
  26. url: '/subpage/signup_ajax/',
  27. data: {
  28. item: $('#item').find(':selected').text(),
  29. },
  30. success: function(data) {
  31.  
  32. wywolaj_okno_dialog();
  33.  
  34. //alert("Ok.");
  35. },
  36. error: function (request, status, error) {
  37. alert(request.responseText);
  38. }
  39. });
  40. });
[JAVASCRIPT] pobierz, plaintext


To jest jedna z wersji, którą testowałem.. Ogólnie za każdym razem div który miał być wyświetlany w oknie, był wyświelany 'normalnie' na stronie.. Jak widać, zakomentowana jest wersja z funkcją alert, która działa poprawnie z tym ,ze wyswietlana informacja to nie jest alert ;p a informacja.. i do tego chciałbym ją sobie odpowiednio zmodyfikować..

Czekam na jakieś sugestie (najlepiej jakiś prosty, działający 'kodowy' przykład..)
Pozdrawiam!
PrinceOfPersia
Cytat
Ogólnie za każdym razem div który miał być wyświetlany w oknie, był wyświelany 'normalnie' na stronie..

a jesteś pewien, że dołączyłeś style CSS do jQuery UI?
mikajlo
Cytat(PrinceOfPersia @ 17.05.2014, 18:33:26 ) *
a jesteś pewien, że dołączyłeś style CSS do jQuery UI?


Nie wiem dokładnie o co chodzi.. (więc raczej tego nie robiłem..)

Znalazłem taki fragment kodu:

[JAVASCRIPT] pobierz, plaintext
  1. $(window).load(function() {
  2. $('#ui-datepicker-div').addClass('CSS-Scope-Class');
  3. });
[JAVASCRIPT] pobierz, plaintext


rozumiem, że każdy swój element muszę w ten sposób zainicjować aby był on 'obsługiwany' ?
PrinceOfPersia
miałem na mysli to, że jak korzystasz z jQuery UI (a korzystasz, prawda?), to musisz dołączyć jakieś pliki *.CSS z szablonem tych okienek.
przynajmniej tak kiedyś było (nie używam już tego, bo są lepsze metody na tworzenie dialogów)
mikajlo
Cytat(PrinceOfPersia @ 17.05.2014, 21:24:28 ) *
miałem na mysli to, że jak korzystasz z jQuery UI (a korzystasz, prawda?), to musisz dołączyć jakieś pliki *.CSS z szablonem tych okienek.
przynajmniej tak kiedyś było (nie używam już tego, bo są lepsze metody na tworzenie dialogów)


ciężko mi tak konkretnie odpowiedzieć, bo brak mi komptenecji .. po prostu chciałem sobie wdrożyć taką funkcję dialogu..

Ogólnie korzystam z bootstrapa.. tam są już dołączone pliki css i biblioteka jquery..

PrinceOfPersia
no to w bootstrapie możesz przekleić HTML ze strony http://getbootstrap.com/javascript/#modals
i potem wywołać metodą $("#id-elementu").modal();
mikajlo
Dzięki, wydaje się, że to spełni moje wymagania smile.gif

Ale pojawił się inny związany z tym problem o którym nie zdawałem sobie sprawy..

Bo dotychczas wywoływałem okno alert() i ono blokuje niejako wykonanie dalszego kodu.. co było istotne dla mnie bo po zamknięciu tego okna zostaje wykonane przekierowanie..

Teraz mając własne okno dialogowe, te przekierwoanie 'nie czeka' aż sam użytkownik jest zamknie tylko od razu wykonywane jest przekierwoanie..

Jak to moża rozwiązać ?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.