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

    Malfunzionamenti dopo un innerHTML

    Salve ragazzi,

    sto usando un componente Gantt complesso in javascript.

    Questo componente ha scrollbar, pulsanti, eventi, molta roba.

    Il componente si trova all-interno di un DIV per esempio "DIV-CONTAINER".

    Se io faccio

    codice:
    document.getEleemntById("DIV-CONTAINER").innerHTML = document.getEleemntById("DIV-CONTAINER").innerHTML;
    le scrollbar, e tutto il resto non funziona piu', come se fosse tutto morto.

    Credo forse sia un problema di DOM ma non ho la piu' pallida idea di come risolvere.

    Essendo che devo fare un copia e incolla del div in un popup, quando lo ricreo nel popup o da qualche altra parte si comporta nello stesso modo perche' quando modifico l'innerHTML si perde qualcosa.

    Avete idea di come potrei risolvere o evitare questo problema?

    Vi ringrazio in anticipo.

    Tony
    Response.Write("Tonyhhkx Programmer32");

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    getEleemntById > getElementById dov'è l'errore solo qui o anche nel documento?
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Originariamente inviato da cavicchiandrea
    getEleemntById > getElementById dov'è l'errore solo qui o anche nel documento?
    l'ho scritto al volo scusa l'errore

    Comunque nel mio progetto ho scritto bene, non ce ne sono errori
    Response.Write("Tonyhhkx Programmer32");

  4. #4
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    se riscrivi un nodo con innerHTML puoi anche dire addio a tutti gli handler sugli eventi precedentemente settati sui nodi figli.

    se vuoi evitare ciò intanto bisognerebbe capire il motivo insito in questa operazione di assegnamento che non è logica: a che ti serve assegnare al nodo il contenuto del nodo stesso? cosa cerchi di ottenere?
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  5. #5
    Originariamente inviato da fcaldera
    se riscrivi un nodo con innerHTML puoi anche dire addio a tutti gli handler sugli eventi precedentemente settati sui nodi figli.

    se vuoi evitare ciò intanto bisognerebbe capire il motivo insito in questa operazione di assegnamento che non è logica: a che ti serve assegnare al nodo il contenuto del nodo stesso? cosa cerchi di ottenere?
    l'avevo immaginato

    La mia necessita e' quella di far uscire il mio DIV in un modalPopupExtender personalizzato.

    Il modalPopupExtender si aggancia ad un div, in quel div io gli scrivo l'html, e quindi perdo nodi e tutto
    Response.Write("Tonyhhkx Programmer32");

  6. #6
    il problema e' appunto che se io aggancio direttamente il mio div al modalpopupextender, di default quel div e' sempre nascosto ed esce solo quando fa lo show.

    Se esistesse un modo per renderlo sempre visibile e poi farlo uscire a finestra con lo show forse potrebbe evitare di farmi fare quei casini con gli innerhtml
    Response.Write("Tonyhhkx Programmer32");

  7. #7
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    Originariamente inviato da tonyhhkx
    l'avevo immaginato

    La mia necessita e' quella di far uscire il mio DIV in un modalPopupExtender personalizzato.

    Il modalPopupExtender si aggancia ad un div, in quel div io gli scrivo l'html, e quindi perdo nodi e tutto
    devi clonare il nodo, appenderlo con i metodi appositi e riassegnare gli eventi ai nuovi nodi
    se usi una qualche libreria guarda nella documentazione, potresti avere dei metodi che semplificano questa operazione.

    Oppure, potresti assegnare gli handler attraverso "l'event delegation" ovvero settare gli eventi su un nodo parent e catturare lì la risalità degli eventi controllando quale nodo ha generato l'evento.
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  8. #8
    Originariamente inviato da fcaldera
    devi clonare il nodo, appenderlo con i metodi appositi e riassegnare gli eventi ai nuovi nodi
    se usi una qualche libreria guarda nella documentazione, potresti avere dei metodi che semplificano questa operazione.

    Oppure, potresti assegnare gli handler attraverso "l'event delegation" ovvero settare gli eventi su un nodo parent e catturare lì la risalità degli eventi controllando quale nodo ha generato l'evento.
    per fare cio' dovrei conoscere a priori tutti gli eventi del mio componente?

    Perche' e' un componente molto complesso, ha molte librerie, vai a capire tutti i metodi che chiama xd

    E' basato anche su EXTJS
    Response.Write("Tonyhhkx Programmer32");

  9. #9
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    tra le varie usa jQuery? se sì http://api.jquery.com/clone/
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  10. #10
    Originariamente inviato da fcaldera
    tra le varie usa jQuery? se sì http://api.jquery.com/clone/
    Grazie per la risposta


    Ho provato questo codice:

    codice:
    $('#gantt-container').clone().appendTo('#divclone');
    Dove 'gantt-container' e' il div dove e' contenuto il componente javascript, e 'divclone' e' un div vuoto che si trova a fine pagina.

    Con quel codice fa esattamente la copia, ma la scroolbar dell'elemento clonato per esempio, non funge
    Response.Write("Tonyhhkx Programmer32");

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.