Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1

    Distruzione "Totale" di un elemento dal documento

    Creo dei nodi ("div") dinamicamente e allo stesso modo vorrei distruggerli ho la sensazione che il browser non deallocchi il riferimento all'oggetto dopo un semplice removeNode()

    In effetti l'oggetto rimane accessibile e modificabile anche dopo questa operazione, pur non essendo più visibile a video.

    C'e qualche altra operazione da fare oppure removeNode() dovrebbe essere sufficiente?

    Fermi o spacco tutto! ........
    Mi scusi perchè vuole spaccare tutto??
    .........Perchè si.

  2. #2
    Scusate ho sbagliato forum .. il moderatore potrebbe spostare il messaggio sotto HTML.
    Grazie.
    Fermi o spacco tutto! ........
    Mi scusi perchè vuole spaccare tutto??
    .........Perchè si.

  3. #3
    Utente di HTML.it L'avatar di nuky
    Registrato dal
    Oct 2001
    Messaggi
    1,053
    Ciao, mi rcordo di te, mi dovevi una birra.
    Io ho provato a fare questo esempio e pare funzionare a dovere.
    Nel documento dopo la removeNode non c'è più il div e non è accessibile. Sei sicuro che tu non ti riferisci alla variabile javascript che hai creato? Quella finché è valorizzata contiene tutto ciò che hai scritto nel div.
    codice:
    <script>
    var newDiv;
    function vai() {
      newDiv = document.createElement("div");
      newDiv.id = "nuovoDiv";
      newDiv.innerHTML = "prova";
      //alert(newDiv.innerHTML)
      document.getElementById("d1").appendChild(newDiv);
    }
    function rimuoviDiv() {
      //document.getElementById("d1").removeNode(newDiv.id); // Così non rimuove graficamente il div anche se poi non ci accede più via DOM
      document.getElementById(newDiv.id).removeNode(newDiv.id);
      
      //La variabile è ancora istanziata
      alert("contenuto della variabile: " + newDiv.innerHTML);
      
      //Tento di accedere al div nel documento
      try {
        alert("contenuto del div nel documento HTML: " + document.getElementById(newDiv.id).innerHTML);
      }
      catch (e) {
        alert("Nel documento non esistono div con id=" + newDiv.id);
      }
    }
    
    </script>
    
    <body onload="vai();">
     <div id="d1"></div>
     <input type="button" value="rimuovi" onclick="rimuoviDiv()">
    </body>
    Se non ho capito allora posta il tuo codice.
    Ciao

    Edit: ho scritto una vaccata, così non lo rimuove graficamente :master:
    Edit2: Così funziona, ma non credo sia il modo giusto per usare la removenode... o sì?
    - "E' un messaggio. E' di Svarion, della terra di Merdor!"
    - "Busto Arsizio?"
    - "Terrazzo, sgabello, formaggio. Borraccia blu, ca**o di gomma e... CANNUCCIA!"
    - "Ca**o dici? C'è scritto «frocio chi legge»!"

  4. #4
    Hai ragione di dovevo una birra che bella memoria! VVoVe: VVoVe: Complimenti allora avevi il porcellino come avatar.

    Cmq quello che intendo dire è che prima di chiamare il removeNode mi sono creato un array di reference ai nodi che poi elimino,

    var oArray = new Array();
    var oDivs = document.all.tags("div")

    for(i=0;i<....)
    oArray[oArray.length]=oDivs[i];


    Nel momento in cui voglio dire al browser di distuggere ogni riferimento (dopo aver fatto i singoli removeNode) è sufficiente che ponga il mio oArray = null;

    Se è così io ho dei problemi (credo un bug del browser) perchè uso i div con i filtri Alpha per caricare dei PNG e l'add remove di questi oggetti ho un effetto di duplicazione degli elementi.
    Fermi o spacco tutto! ........
    Mi scusi perchè vuole spaccare tutto??
    .........Perchè si.

  5. #5
    Utente di HTML.it L'avatar di nuky
    Registrato dal
    Oct 2001
    Messaggi
    1,053
    Una birra non si scorda mai.

    Non riesci a riprodurre l'errore in un esempio più semplice tipo quello che ho fatto io?
    Altrimenti posta tutto il codice che ci smanetto un po' e vedo se riesco a capirci qualcosa.
    - "E' un messaggio. E' di Svarion, della terra di Merdor!"
    - "Busto Arsizio?"
    - "Terrazzo, sgabello, formaggio. Borraccia blu, ca**o di gomma e... CANNUCCIA!"
    - "Ca**o dici? C'è scritto «frocio chi legge»!"

  6. #6
    Postare tutto il codice è un'impresa (è articolato tra HTC,CSS,JS .. e vari)

    Vedo se riesco a preparare qualcosa di + semplice che renda l'idea.

    A livello teorico dovrebbe essere così ..

    1) Html di base

    <table id="c">
    <tr>
    <td>

    <table id="A"><tr><td><div ></td></tr></table>
    </td>
    </tr>
    <tr>
    <td>


    <table id="B"><tr><td><div ></td></tr></table>

    </td>
    </tr>
    </table>


    2)Nello style dei 2 div ci vuole la stringa per abilitare l'alphaLoader
    ecco qui:

    style="position:relative;width16;height:16;filterrogidXImageTransform.Microsoft.AlphaImageLoader(src='My Immagine.png', sizingMethod='image');"

    3) Inserire degli script che rimuovano una delle 2 tabelle e inseriscano in nodo rimosso magari su una 3° riga della tabella primaria "c" tramite i metodi removeNode,appendChild.

    Ecco + o - è così che faccio e l'effetto è che visivamente l'immagine PNG aumenta la sua dimensione come se fosse ripetuta, la cosa divertente è che cliccando sopra la nuova immagine (ottenuta dalla somma della prima orginale) a livello di dom viene vista come un'unico elemento. event.srcElement (sul click per esempio) ritorna sempre lo stesso elemento.

    Auguri ....
    Fermi o spacco tutto! ........
    Mi scusi perchè vuole spaccare tutto??
    .........Perchè si.

  7. #7
    Utente di HTML.it L'avatar di nuky
    Registrato dal
    Oct 2001
    Messaggi
    1,053
    Fammi capire.
    Tu hai questo:
    codice:
      <table id="c"> 
        <tr> 
          <td> 
             
            <table id="A"><tr><td><div ></td></tr></table> 
          </td> 
        </tr> 
        <tr> 
          <td> 
             
            <table id="B"><tr><td><div ></td></tr></table> 
          </td> 
        </tr> 
      </table>
    Cliccando su un pulsantino (giusto per far partire lo script) cosa vuoi ottenere? Questo?
    codice:
      <table id="c"> 
        <tr> 
          <td> 
             
            <table id="A"><tr><td><div ></td></tr></table> 
          </td> 
        </tr> 
        <tr> 
          <td> 
          </td> 
        </tr> 
        
        
        <tr> 
          <td> 
            
             
            <table id="B"><tr><td><div ></td></tr></table> 
          </td> 
        </tr> 
        
      </table>
    Oppure la terza riga ce l'hai già e vuoi solo spostare il div interno?
    - "E' un messaggio. E' di Svarion, della terra di Merdor!"
    - "Busto Arsizio?"
    - "Terrazzo, sgabello, formaggio. Borraccia blu, ca**o di gomma e... CANNUCCIA!"
    - "Ca**o dici? C'è scritto «frocio chi legge»!"

  8. #8
    Hai centrato precisamente l'esempio non ho ne la riga ne la cella ...
    E le creo al volo.


    Per dirla tutta ho semplificato nell'esempio nel caso reale ho 2 macrotabelle per macrotabelle intendo come "c" e da una macro tabella sposto il contenitore per l'immagine PNG eliminando la riga e la cella nella tabella di origine e creandola in quella di destinazione.

    Cmq puoi usare anche il primo esempio se ti semplifica in linea teorica dovrebbe produrre lo stesso errore ...

    P.S. Se riesci a risolvere il problema anche questa volta devo mandarti qualcosa in + di una birra stavolta
    Fermi o spacco tutto! ........
    Mi scusi perchè vuole spaccare tutto??
    .........Perchè si.

  9. #9
    Utente di HTML.it L'avatar di nuky
    Registrato dal
    Oct 2001
    Messaggi
    1,053
    Però non ho ancora capito bene un po' di cosette:
    1. Dove e come è inserita l'immagine.
    2. Perché alll'inizio hai parlato di spostare i div, io sposterei tutto il tr da una tabella all'altra.
    3. Non mi è ancora chiaro qual'è il problema. E' a livello grafico? La riga nella prima tabella non scompare? :master:
    - "E' un messaggio. E' di Svarion, della terra di Merdor!"
    - "Busto Arsizio?"
    - "Terrazzo, sgabello, formaggio. Borraccia blu, ca**o di gomma e... CANNUCCIA!"
    - "Ca**o dici? C'è scritto «frocio chi legge»!"

  10. #10
    1) L'immagine è inserita come DIV usando il filtro ALPHA puoi caricare un'immagine PNG attraverso un filtro come ti mostravo nella stringa style al punto 2 dei vecchi post.

    2) No intedevo dire di spostare i table che contengono i div.Si potrebbe spostare anche la riga, ma per una serie di motivi sui metodi degli HTC ho preferito fare così, io l'ho riportato solo per farti capire cosa facevo, se per fare i test ti è + comodo spostare la riga da una table all'altra fa pure .. solo che non so se in quel caso compare l'anomalia .. da provare.

    3) Il problema è grafico immaginati che l'immagine nella cella ti appaia cosi e dopo lo spostamento così e quando ci clicchi sopra è come se fosse un'immagine unica e non 2.
    Fermi o spacco tutto! ........
    Mi scusi perchè vuole spaccare tutto??
    .........Perchè si.

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.