Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][JavaScript][jquery]jquery dialog pierwsze otwarcie
Forum PHP.pl > Forum > Przedszkole
Odoakr
Czołem!
Na stronie index.php mam

  1. <div id="poleFoto">
  2. <p> dlaczego to widać</p>
  3. </div>


w zewnętrznym pliku js.js

  1. $(document).ready(function() {
  2. $('#dodajFotoButton').click(function() {
  3.  
  4. $("#dodajFoto").dialog({
  5. height: 500,
  6. autoopen: false,
  7. width: 450,
  8. modal: true,
  9. draggable: true,
  10. resizable: true
  11. });
  12. })
  13.  
  14. });


Problem polega na tym, iż przy pierwszym otwarciu strony tekst "dlaczego to widać" jest widoczny. Dopiero po uruchomieniu okna dialogowego znika i uruchamia się w oknie dialogowym - czyli tam gdzie miał być od początku. Dlaczego tak się dzieje?

grzeee
nie pisz tego diva w html tylko stwórz go za pomocą jquery przy klikaniu
Przykład naprowadzający
  1. var $newdiv1 = $('<div id="object1"/>'),
  2. newdiv2 = document.createElement('div'),
  3. existingdiv1 = document.getElementById('foo');
  4.  
  5. $('body').append($newdiv1, [newdiv2, existingdiv1]);
mortus
@grzeee A co to ma wspólnego z problemem.

@Odoakr Przecież trzeba sobie ukryć ten element za pomocą atrybutu CSS display: none;:
  1. #poleFoto {
  2. display: none;
  3. }


Choć w sumie mogłaby wystarczyć sama inicjalizacja, ale nie po kliknięciu przycisku/odnośnika, a po załadowaniu strony:
[JAVASCRIPT] pobierz, plaintext
  1. $(document).ready(function() {
  2. $("#dodajFoto").dialog({
  3. height: 500,
  4. autoopen: false,
  5. width: 450,
  6. modal: true,
  7. draggable: true,
  8. resizable: true
  9. });
  10. $('#dodajFotoButton').click(function() {
  11. $("#dodajFoto").dialog('open');
  12. });
  13. });
[JAVASCRIPT] pobierz, plaintext

Polecam dokładniej przyjrzeć się dokumentacje.
Odoakr
@mortus! Jak ukryje to z kolei po otwarciu nie widaćsmile.gif Dopisałem, żeby w momencie powstawania popupu zmieniało się na block i śmiga. Czy to jest normalne podejście, czy takie trochę partyzanckie?smile.gif

BTW. jeżeli element o id
  1. $('#dodajFotoButton')


zostanie utworzony przez php w innym obiekcie dialog, to po kliknięciu nic się nie dzieje. Czy jquery ma jakieś ograniczenia w zagnieżdżaniu elementów, które są w stanie wywołać funkcję?
mortus
Usuń style i sprawdź kod jQuery, który wyżej podałem. Co do ograniczeń, to są to ograniczenia JS, a w jQuery można sobie z nimi radzić za pomocą metody .live().
Odoakr
Dzięki za pomoc! Działa!

W Twoim kodzie zmień tylko:
autoopen: false

na

autoOpen: false
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.