Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di Marcolino's
    Registrato dal
    May 2003
    residenza
    Udine
    Messaggi
    3,606

    [DOM] Crezione e apertura di un box stile popup nella pagina e sue chiusura.

    Ciao
    Forse il problema è stato già affrontato ma non sono riuscito ancora a risolverlo quindi mi spiego per cercare altre risposte al mio problema.
    Nel titolo ho cercato di sintetizzare il problema ma il vero dilemma è la chiusura, in realtà riesco benissimo a crearlo.
    In pratica tramite una funzioncina in javascript creo la "finestra":
    codice:
    function popup(fotoID) {
    var win = document.createElement('div'),
         f = document.getElementById(fotoID),
         b = document.getElementById('top'),
         html = '<h3>' + f.alt + '</h3><p><img src="' + f.src + '" alt="' + f.alt + '" /></p><p><a href="#" onclick="chiudi('fotografia')">Chiudi finestra!</a></p>';
      win.setAttribute('id', 'fotografia');
      win.setAttribute('class', 'photo');  /* Ok! semplicemente le da una dimensione e la mette a centro della pagina */
      win.innerHTML = html;
      b.appendChild(win);  
    };
    codice HTML:
    .....
    <li><a href="#img1" onclick="popup('img1')"><img src="immagini/immagine.jpg" alt="immagine" id="img1" /></a></li>
    .....
    La funzione viene richiamata facendo click su una thumbnail in una pagina con tante foto, quando fai click apre la "popup" con la foto ingrandita, sopra il nome della foto e sotto la foto, in fondo un link per la sua chiusura, il tutto viene appeso all'elemento body nella pagina.
    E fino a qui tutto funge a meraviglia!
    Il problema avviene alla chiusura.
    Nel listato di cui sopra, si vede il richiamo ad un evento onclick che a sua volta richiama una funzione chiamata chiudi(id), la funzione funziona iterando tutti gli elementi creati all'interno del box aperto nella pagina ma lasciando quest'ultimo ancora aperto.
    Ho provato a mettere in ... onclick="chiudi('fotografia'); b.removeChild(win);">... ma mi dice che win è nullo!
    E non risco a trovare la soluzione per rimuovere quel maledetto div creato.

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    onclick="chiudi(\'fotografia\')" la variabile fotografia che passi alla funzione chiudi deve essere backslash \, per la variabile win rendila globale (cioè instanziala fuori dalla funzione)
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it L'avatar di Marcolino's
    Registrato dal
    May 2003
    residenza
    Udine
    Messaggi
    3,606
    Quote Originariamente inviata da cavicchiandrea Visualizza il messaggio
    onclick="chiudi(\'fotografia\')" la variabile fotografia che passi alla funzione chiudi deve essere backslash \, per la variabile win rendila globale (cioè instanziala fuori dalla funzione)
    Sì be l'escape nel programma c'è, qui l'ho scritto a memoria, ma funziona esattamente come ti ho scritto, quanto alla seconda parte del tuo discorso avevo provato a rendere globale b, ma forse sì dovrei provare a rendere tutto globale. Ti farò sapere

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.