Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript] zasieg zmiennych, jak zmienic
c4ash
post
Post #1





Grupa: Zarejestrowani
Postów: 73
Pomógł: 9
Dołączył: 14.01.2010

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


Witam!

Albo nie moge tego znalezc, albo to co znalazlem nie zrozumialem na tyle.
W kazdym razie, mam funkcje1 ktora pobiera wspolrzedne. Jak te dane przekazac do funkcji2?

funkcja1
[JAVASCRIPT] pobierz, plaintext
  1. function getXY(e) {
  2. x = (window.Event) ? e.pageX : event.clientX;
  3. y = (window.Event) ? e.pageY : event.clientY;
  4.  
  5. document.getElementById(document.getElementById('position1').value === '' ? 'position1' : 'position2').value = x+":"+y;
  6. }
[JAVASCRIPT] pobierz, plaintext

funkcja2
[JAVASCRIPT] pobierz, plaintext
  1. function markIt(e)
  2. {
  3. mark.style.left = document.getElementById('position1').value = x;
  4. mark.style.top = document.getElementById('position1').value = y;
  5. mark.style.width = document.getElementById('position2').value = x;
  6. mark.style.height = document.getElementById('position2').value = y;
  7. }
[JAVASCRIPT] pobierz, plaintext

To co mam, powoduje, ze w elemencie position1 z funkcji1 znika value x a ustawienia z funkcji2 pokrywaja sie tylko czesciowo.
Co przerobic, aby nic nie znikalo, a dane z jednej funkcji zostaly przekazane w sposob prawidlowy do funkcji2?
Go to the top of the page
+Quote Post
!*!
post
Post #2





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


http://www.doman.art.pl/kursjs/kurs/zmienne.html "zasięg zmiennych"
Go to the top of the page
+Quote Post
c4ash
post
Post #3





Grupa: Zarejestrowani
Postów: 73
Pomógł: 9
Dołączył: 14.01.2010

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


No tak, czytalem. Jesli zadeklaruje zmienna przed funkcja, to moge w funkcji ja wykorzystac. Ale jak przeslac zmienne z jednej funkcji do drugiej? Moze za tepy jestem, aby to zrozumiec, albo mam pomrocznosc jasna... Nawet jesli zadeklaruje zmienne na poczatku, przed funkcja, to i tak nic to nie zmienia w funkcjonowaniu skryptu. W dalszym ciagu nie przesyla dokladnie takich danych jakie powinien...
Go to the top of the page
+Quote Post
semafor1985
post
Post #4





Grupa: Zarejestrowani
Postów: 61
Pomógł: 3
Dołączył: 18.10.2012
Skąd: Zagłębie Dąbrowskie

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


Cytat(c4ash @ 18.02.2014, 12:49:10 ) *
Ale jak przeslac zmienne z jednej funkcji do drugiej?


jako argumenty?
Go to the top of the page
+Quote Post
PrinceOfPersia
post
Post #5





Grupa: Zarejestrowani
Postów: 717
Pomógł: 120
Dołączył: 18.04.2009

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


dokładnie.

Kod
function jakasFunkcja(argument_1, argument_2) {
  alert(argument_1);
  alert(argument_2);
}

jakasFunkcja(12,54); // przekazujemy do funkcji 12 i 54


PS. czy to jest cały kod? Gdzie deklarujesz zmienne x, y oraz mark?
Jesli to cały kod, to zapomniałes o słówku kluczowym var (chyba, że celowo robisz te zmienne globalnymi).
Go to the top of the page
+Quote Post
c4ash
post
Post #6





Grupa: Zarejestrowani
Postów: 73
Pomógł: 9
Dołączył: 14.01.2010

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


Nie, to nie jest caly kod. Tylko wycinek, ktory myslalem wystarczy.
Deklaracji wstepnie nie mialem. Potem zrobilem na samym poczatku skryptu, aby byly globalne. Dalej nie dziala to tak, jak chcialem.

Te przyklady, ktore podajecie, rozumiem. Ale nie o to mi chodzilo.
Potrzebuje przeslac wynik dzialania funkcji getXY do funkcji markIt.

Dzialanie zamierzone - klikam w dwa punkty - otrzymuje dwie pary (x,y) ktore wpisuje w formularz. Majac dwie pary (x,y) chce je ustawic w funkcji mark, a konkretnie w polach left, top, width, height - w ten sposob bede mogl utworzyc prostokat, o podanych parametrach.. O ile left i top dziala, o tyle width i height juz nie. A z pola gdzie zapisywalem pierwsza pare (x,y) znika (x).
Go to the top of the page
+Quote Post
!*!
post
Post #7





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


To zrób to tak jak już wspomnieli wyżej i sprawdź czy nie nadpisujesz tych zmiennych gdzie indziej lub po prostu zmień ich nazwę.
Go to the top of the page
+Quote Post
owca_82
post
Post #8





Grupa: Zarejestrowani
Postów: 77
Pomógł: 8
Dołączył: 22.04.2012

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


Z funkcji markIt możesz wywołać funkcję GetXY która to będzie zwracała określone dane, które potem będzie można wykorzystać do obróbki - zmienne deklaruj jako lokalne, przypisuj im jakieś dane a potem zwracaj
Go to the top of the page
+Quote Post
c4ash
post
Post #9





Grupa: Zarejestrowani
Postów: 73
Pomógł: 9
Dołączył: 14.01.2010

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


Faktycznie, doszlo do nadpisania, a wywolanie funkcji getXY z funkcji markIt dopelnilo reszty.
Dziekuje.
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: 23.08.2025 - 14:21