Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] odwołanie się do funkcji w if
Forum PHP.pl > Forum > Przedszkole
!*!
  1.  
  2. function displayinfo(){
  3.  
  4. var di = (screen.width +"x"+ screen.height);
  5.  
  6. if(di == '1280x1024'){
  7. function r100() {alert("1");}
  8. function r200() {alert("2");}
  9. }
  10. else if(di == '12ss80x1024'){
  11. function r100() {alert("3");}
  12. function r200() {alert("4");}
  13. }
  14. else if(di == '12s80x1024'){
  15. function r100() {alert("5");}
  16. function r200() {alert("6");}
  17. }
  18. else{
  19. alert("1");
  20. }
  21.  


Przy załadowaniu strony sprawdzam rozdzielczość ekranu poprzez funkcje displayinfo(), jednak chciałbym za pomocą np. linku odwołać się do funkcji r100() która jest zależna od if z pobraną rozdzielczością ekranu, jak mam to zrobić?
korro
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  4. <script type="text/javascript">
  5. function r100(cos) {
  6. alert(cos);
  7. }
  8. function displayinfo(){
  9. var di = (screen.width +"x"+ screen.height);
  10. switch (di)
  11. {
  12. case '1280x1024':
  13. return "1";
  14. case '1280x800':
  15. return "2";
  16. default:
  17. return "-1";
  18. }
  19. }
  20. var opcja = displayinfo();
  21. </script>
  22. </head>
  23. <body>
  24. <a href="#" onclick="java script:r100(opcja)">Link</a>
  25. </body>
  26. </html>
!*!
Dzięki za naprowadzenie, jednak mam problem z przypisaniem do return wartości.

Kod
mint.fx.Size("cell", 300, 450, 25, 500)


Tak wygląda obecnie funkcja r100, jendak mam problem z umieszceniem jej na przykładzie wyżej:

Kod
function r100(cos) {
                mint.fx.Size(cos);
            }
            function displayinfo(){
                var di = (screen.width +"x"+ screen.height);
                switch (di)
                {
                    case '1280x1024':
                        return "\"cos\", 300, 450, 25, 500";
                    case '1280x800':
                        return "2";
                    default:
                        return "-1";
                }
            }
            var opcja = displayinfo();


W takim wypadku nie ma żadnej reakcji, jeśli sprawdzę "alert(cos)" wtedy wartość jaką przekazuje return jest dobra, to dlaczego nie chce się wykonać w takim wypadku?
korro
Każdy parametr musisz przekazać oddzielnie.
[JAVASCRIPT] pobierz, plaintext
  1. function r100(cos) {
  2. mint.fx.Size(cos[0], cos[1], cos[2], cos[3], cos[4]);
  3. }
  4. function displayinfo(){
  5. var di = (screen.width +"x"+ screen.height);
  6. switch (di)
  7. {
  8. case '1280x1024':
  9. return new Array("cell", 300, 450, 25, 500);
  10. case '1280x800':
  11. return "2";
  12. default:
  13. return "-1";
  14. }
  15. }
  16. var opcja = displayinfo();
[JAVASCRIPT] pobierz, plaintext

Coś takiego.
Nie wiem tylko, dlaczego to ma reagować na link, a nie wykonywać się automatycznie przy ładowaniu strony.
!*!
Ponieważ chciałem dać możliwość zmiany rozmiaru danego elementu, oraz aby przy różnej rozdzielczości miał inny rozmiar. Jednak teraz już wiem że skopałem koncepcje i to co napisałem, oraz Ty poprawiłeś jest niewystarczające. Może opisze dokładnie co chciałbym uzyskać.

Najpierw mam div który przy rozdzielczości np. 800x600 ma szerokość 740px, w tym divie mam linki które mają zmienić jego szerokość/wysokość np.

Kod
- 780px
- 800px
- 890px


Po kliknięciu zmienia się jego wysokość... jednak razem ze zmianą szerokość/wysokości diva zmienia się także pozycja obrazka. Cały myk ma polegać na tym aby skrypt wiedział z jakiej szerokości się uruchamia, aby zmiana pozycji obrazka była plynna np. z 780px na 890px lub z 800px na 890px . Właśnie dla tego obrazka muszę odczytać szerokość diva, aby podczas zmiany szerokości nie skałał, tylko był płynnie przesuwany. Przejrzę jeszcze raz dokumentacje mintajax, i chyba zrobię coś z odczytaniem pozycji obrazka... tylko że przy innej rozdzielczości pozycja będzie inna. (np. dolny prawy róg).

A swoją drogą załadować coś automatycznie przy ładowaniu trzeba dopisać widnow.onload = funkcja(); ? Tzn. czy taka opcja jest optymalna?
korro
Tak, onload będzie ok. Możesz ukryć pokazywany element i pokazać go dopiero, jak będzie miał odpowiednie rozmiary, wtedy user nie będzie widział , że coś się dzieje.
!*!
Właśnie to user ma mieć możliwość zmiany tego elementu po kliknięciu na link.
korro
Zmiany tak, chodziło ładowanie strony i ustawienie się elementów do rozdzielczości.
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.