Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][JavaScript][jquery]jquery dialog pierwsze otwarcie
Odoakr
post
Post #1





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 5.03.2008

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


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?

Go to the top of the page
+Quote Post
grzeee
post
Post #2





Grupa: Zarejestrowani
Postów: 102
Pomógł: 5
Dołączył: 24.11.2006

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


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]);


Ten post edytował grzeee 5.01.2012, 16:10:32
Go to the top of the page
+Quote Post
mortus
post
Post #3





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


@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.

Ten post edytował mortus 5.01.2012, 16:23:21
Go to the top of the page
+Quote Post
Odoakr
post
Post #4





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 5.03.2008

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


@mortus! Jak ukryje to z kolei po otwarciu nie widać(IMG:style_emoticons/default/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?(IMG:style_emoticons/default/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ę?
Go to the top of the page
+Quote Post
mortus
post
Post #5





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


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().
Go to the top of the page
+Quote Post
Odoakr
post
Post #6





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 5.03.2008

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


Dzięki za pomoc! Działa!

W Twoim kodzie zmień tylko:
autoopen: false

na

autoOpen: false
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 5.10.2025 - 02:18