Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    65

    DOM EventListener su bottone

    salve a tutti, sto creando una cartina con google maps e sto un po' imprecando perchè non riesco a far la legenda.

    Ho creato il tasto Legenda e ogni volta che clicco, mi appare una nuova legenda!!! Io invece vorrei cliccare una volta e la legenda mi appare, clicco un'altra volta sul bottone e la legenda deve scomparire!!

    come fare???

    la mappa la trovate su:

    http://www.federicarizzi.com/map/legend.html

    grazie in anticipo...

  2. #2
    Ciao, una soluzione potrebbe essere , supponendo che crei la legenda all'interno di un tag contenitore, per esempio una div, l'importante è che gli dai un identificatore, quando si clicca sul bottone si verifica qual'è lo stato di tale tag: se non esiste, viene creata la legenda: se esiste, viene rimossa. Una cosa tipo:
    codice:
    if (document.getElementById('id_legenda') != null) cancella_legenda
    else crea

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    65
    il div si chiama legenda, ora devo solo capire come fare la funzione "cancella".

    grazie per ora, se ho altri disguidi, aggiorno!

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    65
    ho aggiunto queste funzioni:

    codice:
    google.maps.event.addDomListener(controlUI, 'click', function() 
    	{
    		if (document.getElementById('Legenda') != null) nascondi_legenda(legenda);
    		else mostra_legenda(legenda);
    		
    	});
    
    function mostra_legenda(legenda)
    {
    	
    	map.controls[google.maps.ControlPosition.TOP_RIGHT].push(legenda);
    }
    
    function nascondi_legenda(legenda)
    {
    	map.controls[google.maps.ControlPosition.TOP_RIGHT].pop(legenda);
    
    }
    ma il risultato non è proprio quello che volevo ottenere: provate a guardare il link; la prima volta crea la legenda, le altre volte cancella e la rifà di fianco!
    aaaaaaaaaaaaaaaaaaaaaaa

  5. #5
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Se non ti ripugna puoi aggiungere una variabile globale...
    codice:
    pippo = false;
    google.maps.event.addDomListener(controlUI, 'click', function() 
    	{
    		if (pippo) {
    			map.controls[google.maps.ControlPosition.TOP_RIGHT].pop(legenda);
    		} else {
    			map.controls[google.maps.ControlPosition.TOP_RIGHT].push(legenda);
    		};
    		pippo = !pippo;
    	});
    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    65
    ho seguito i tuoi consigli, ma c'è qualcosa che mi sfugge.

    ora la mappa viene inizializzata con la legenda nascosta; clicco e compare, riclicco e scompare, ma se faccio uno zoom nella pagina, riappare magicamente la legenda! DAMN!!!!!!!!

    il link della mappa è sempre lo stesso!

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 © 2025 vBulletin Solutions, Inc. All rights reserved.