Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript] Autowywołanie skryptu, zamiast kliknięcia.
.Wojtek
post
Post #1





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 22.09.2009

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


Mam chyba dość prosty problem do rozwiązania ale cieniutki jestem jeszcze w JS, dlatego chciałbym Was poprosić o pomoc.

Chciałbym automatycznie wywołać skrypt podczas ładowania strony. W tej chwili mogę to zrobić naciskając przycisk.

Skrypt wywołuję naciskąjąc na jeden z przycisków:

  1. <input type='button' name='osx' value='Demo' class='osx demo'/>
  2. or
  3. <a href='#' class='osx'>Demo</a>

A tu kod jQuery:
  1. jQuery(function ($) {
  2. var OSX = {
  3. container: null,
  4. init: function () {
  5. $("input.osx, a.osx").click(function (e) {
  6. e.preventDefault();
  7.  
  8. $("#osx-modal-content").modal({
  9. overlayId: 'osx-overlay',
  10. containerId: 'osx-container',
  11. closeHTML: null,
  12. minHeight: 80,
  13. opacity: 65,
  14. position: ["15%",],
  15. overlayClose: true,
  16. onOpen: OSX.open,
  17. onClose: OSX.close
  18. });
  19. });
  20. },
  21. open: function (d) {
  22. var self = this;
  23. self.container = d.container[0];
  24. d.overlay.fadeIn('slow', function () {
  25. $("#osx-modal-content", self.container).show();
  26. var title = $("#osx-modal-title", self.container);
  27. title.show();
  28. d.container.slideDown('slow', function () {
  29. setTimeout(function () {
  30. var h = $("#osx-modal-data", self.container).height()
  31. + title.height()
  32. + 20; // padding
  33. d.container.animate(
  34. {height: h},
  35. 200,
  36. function () {
  37. $("div.close", self.container).show();
  38. $("#osx-modal-data", self.container).show();
  39. }
  40. );
  41. }, 300);
  42. });
  43. })
  44. },
  45. close: function (d) {
  46. var self = this; // this = SimpleModal object
  47. d.container.animate(
  48. {top:"-" + (d.container.height() + 0)},
  49. 500,
  50. function () {
  51. self.close(); // or $.modal.close();
  52. }
  53. );
  54. }
  55. };
  56.  
  57. OSX.init();
  58.  
  59. });


Mam jeszcze kod typowo jQuery ale chyba nie potrzebny tutaj jest. winksmiley.jpg

Na razie nie wiem czy będę potrzebował jakiegoś opóźnienia w ładowaniu się skryptu ale mam nadzieję, że to będzie zbędne. smile.gif Na razie chciałbym, żeby skrypt sam się wywołał pod czas ładowania storny.

Pozdrawiam

(usunąłem tę wypowiedź z "Forum > Gotowe rozwiązania > Szukam", bo tam trochę nie pasowała. smile.gif )

Ten post edytował .Wojtek 14.05.2010, 20:46:10
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
kamil4u
post
Post #2





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

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


Zainteresuj się takimi zdarzeniami jak onload i DOMContentLoaded w JS lub ready() w jQuery( http://api.jquery.com/ready/ )


--------------------
Go to the top of the page
+Quote Post
.Wojtek
post
Post #3





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 22.09.2009

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


Tylko coś nie mogę ułożyć komendy, aby wywołać skrypt w najprostszy sposób.

Ten post edytował .Wojtek 14.05.2010, 21:42:36
Go to the top of the page
+Quote Post
kamil4u
post
Post #4





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

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


W zdarzeniach(a raczej 1 z nich), które napisałem w poprzednich postach wywołujesz zdarzenie click "zawarte" w $("input.osx, a.osx") - niestety nie znam sposobu uruchamiania zdarzenia w jQuery(sprawdź w dokumentacji), ale w czystym JS byłoby to: referencja_do_elementu.onclick(); podejrzewam, że w jQuery jest bardzo podobnie np. .click() lub coś w ten deseń smile.gif

Innym sposobem(w zależności od tego czy chcesz mieć przycisk, który w razie czego uruchomi ten skrypt przez link) to zmiana zdarzenia $("input.osx, a.osx").click na któreś zdarzenie opisane w moim poprzednim poście.

PS. Swoją drogą ważne jest, w którym miejscu znajduje się Twój kod JS( OSX.init(); ), gdyż przypisując zdarzenie click, DOM musi być już załadowany, więc tym bardziej nie powinno być problemu.


--------------------
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 Aktualny czas: 19.08.2025 - 06:23