Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] Autowywołanie skryptu, zamiast kliknięcia.
Forum PHP.pl > Forum > Przedszkole
.Wojtek
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 )
kamil4u
Zainteresuj się takimi zdarzeniami jak onload i DOMContentLoaded w JS lub ready() w jQuery( http://api.jquery.com/ready/ )
.Wojtek
Tylko coś nie mogę ułożyć komendy, aby wywołać skrypt w najprostszy sposób.
kamil4u
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.
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.