Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript] warunek if dla dwoch funkcji
cioop
post
Post #1





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

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


witam,
mam pewnie prosty problem, pojegający na tym, że nie umiem ustawić warunku if, w zależności od ktorego wykonywałyby się dwie rózne funkcje. tj - druga funkcja wykonywalaby sie tylko i wylacznie wtedy, kiedy nie wykonalaby sie pierwsza funkcja.
oto kawalek kodu:
  1. window.onload = init;
  2. function funkcja1(parametr1,parametr2){
  3. var allA = document.getElementsByTagName('A');
  4. for (var i=0; i < allA.length; i++)
  5. {
  6. allA[i].onclick = function(){
  7. //nastepna funkcja
  8. }
  9. }
  10.  
  11. }
  12. function init() {
  13. nazwa = new funkcja1(parametr1,parametr2);
  14. //potrzebuje warunku 'jesli nie funkcja1, to funkcja2'
  15. if (funkcja1 == false) funkcja2(parametr1,parametr2);
  16. }


wiem, ze to pewnie banalnie proste, ale nijak nie potrafie sobie z tym poradzic. probowalem w pierwszej funkcji ustawiac return true albo wywolywac warunek poprzez if(!funkcja1()). niestety nie wyszlo z tego nic, co dzialaloby poprawnie zarowno pod Firefoxem jak i Explorerem.

z gory dziekuje za pomoc
Go to the top of the page
+Quote Post
oscar17
post
Post #2





Grupa: Zarejestrowani
Postów: 102
Pomógł: 22
Dołączył: 3.03.2008

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


chodzi o coś takiego:
  1. <script language="JavaScript" type="text/javascript">
  2. window.onload = init(1,2);
  3. function funkcja1(parametr1,parametr2){
  4.  
  5. if(parametr1==parametr2) return true;
  6. else return false
  7. }
  8.  
  9. function funkcja2()
  10. {
  11. alert("funkcja 2");
  12. }
  13.  
  14. function init(param1, param2)
  15. {
  16. if(!funkcja1(param1,param2)) funkcja2();
  17. }
  18.  

dla
  1. window.onload = init(1,1);

wywoła się tylko pierwsza funkcja
Go to the top of the page
+Quote Post
cioop
post
Post #3





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

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


dzieki za odpowiedz, ale chyba nie do konca o to mi chodzilo,
jesli nie jest to konieczne, wolalbym nie ustawiac parametrow dla funkcji init, poniewaz znajduja sie w niej jeszcze wywolania innych funkcji,
czy nie da sie tego ustawic przerabiajac logike warunku:
  1. funkcja1(parametr1,parametr2);
  2. if (!funkcja1(parametr1,parametr2)) funkcja2(parametr1,parametr2);

ewentualnie dopisujac cos w funkcji1(), na podstawie czego moznaby sprawdzic czy sie wykonala i jesli sie nie wykonala to wywolac funkcje2()?
Go to the top of the page
+Quote Post
oscar17
post
Post #4





Grupa: Zarejestrowani
Postów: 102
Pomógł: 22
Dołączył: 3.03.2008

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


no to może coś takiego po prostu:

  1. <script language="JavaScript" type="text/javascript">
  2.  
  3. function funkcja1(parametr1,parametr2){
  4. if(parametr1==parametr2) return true;
  5. else funkcja2()
  6. }
  7.  
  8. function funkcja2()
  9. {
  10. alert("funkcja 2");
  11. }
  12.  
  13. <a href="#" onclick="javascript:funkcja1(1,2)">lala</a>
Go to the top of the page
+Quote Post
cioop
post
Post #5





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

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


dzieki za zangazowanie, ale to raczej tez nie to :-(
parametry 1 i 2 beda prawidlowe zarowno wtedy kiedy beda rowna, jak i wtedy kiedy beda sie roznic (wykorzystuje je dalej w obu funkcjach),
do tego w funkcji1 wlasnie ustawiam onclick
  1. function funkcja1(parametr1,parametr2){
  2. var allA = document.getElementsByTagName('A');
  3. for (var i=0; i < allA.length; i++)
  4. {
  5. allA[i].onclick = function(){
  6. //nastepna funkcja
  7. }
  8. }
Go to the top of the page
+Quote Post
oscar17
post
Post #6





Grupa: Zarejestrowani
Postów: 102
Pomógł: 22
Dołączył: 3.03.2008

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


parametry to jest tylko przykład - musisz sobie sam napisać to co będzie Ci sprawdzać czy wykonało się poprawnie (return true) czy też źle - wywołać wtedy funkcje funkcja2(). Trochę inwencji ;-)
Go to the top of the page
+Quote Post
cioop
post
Post #7





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

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


mam nadzieje ze zadziala - w pierwszej funkcji dodalem zmienna rowna zero i na onclick ustawiam wartosc zmiennej na 1
nastepnie funkcje 2 wywoluje warunkiem, jezeli zmienna rowna sie zero
  1. //w
  2. function funkcja1(parametr1,parametr2){
  3. var allA = document.getElementsByTagName('A');
  4. //dodalem tu zmianna rowna zero
  5. var zmienna = 0
  6. for (var i=0; i < allA.length; i++)
  7. {
  8. allA[i].onclick = function(){
  9. //nastepna funkcja
  10. zmienna = 1;
  11. }
  12. //i po wykonaniu funkcja1() sprawdzam zmienna
  13. if (zmienna == 0) funkcja2();
  14. }
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: 21.08.2025 - 07:25