Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di lnessuno
    Registrato dal
    Feb 2002
    Messaggi
    2,732

    funzione che richiama un'altra funzione

    :master:

    ho un link che mi lancia una funzione showhide, passandogli il div da visualizzare e una funzione da lanciare, quando viene eseguito showhide

    Mappa

    showhide fa questo:
    codice:
    function showhide(targetId,startfunction ){
    	if (document.getElementById){
    		target = document.getElementById( targetId );
    		if (target.style.display == "none"){
    			target.style.display = "block";
    			if (startfunction) {
    			     startfunction();
                }
    		} else {
    			target.style.display = "none";
    		}
    	}
    }
    startfunction() dovrebbe farmi partire la funzione showmap no? invece mi restitusice errore... cosa mi sfugge? :master:

    showmap naturalmente esiste...

  2. #2
    troppo comodo se si potesse fare cosi'!

    per fare in fretta puoi usare

    codice:
    eval(startfunction + "();");
    ma mi pare poco elegante e pericoloso. Se le funzioni possibili che possono essere passate come secondo argomento a showhide sono poche ti suggerisco di gestirtela con qualche if o con uno switch.

    Cosi' sei al riparo se per caso si passa una 'startfunction' che non esiste

  3. #3
    Utente di HTML.it L'avatar di lnessuno
    Registrato dal
    Feb 2002
    Messaggi
    2,732
    mm in effetti hai ragione... oggi provo, grazie!

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    dovrebbe andare, con IE7, Opera9 e Firefox2

    Mappa
    Pietro

  5. #5
    Utente di HTML.it L'avatar di lnessuno
    Registrato dal
    Feb 2002
    Messaggi
    2,732
    Originariamente inviato da pietro09
    dovrebbe andare, con IE7, Opera9 e Firefox2

    Mappa
    gentilissimo anche tu, ma ho già risolto in modo simile a come ha proposto raven74:

    Mappa

    codice:
    function showhide(targetId){
    	if (document.getElementById){
    		target = document.getElementById( targetId );
    		if (target.style.display == "none"){
    			target.style.display = "block";
    			if (targetId == "map") {
    			     showmap();
                }
    		} else {
    			target.style.display = "none";
    		}
    	}
    }

    grazie!

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Beh! l'importante è sapere che se un metodo si aspetta di ricevere una funzione, non posso passare una stringa.

    Perchè showmap non è "showmap"

    Pietro

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.