2012-02-08 14 views
5

tutti sanno come risolvere il problema del css dopo una richiesta Ajax con $ .load? Per esempio, se voglio caricare solo un DIV da una pagina web, dopo la mia richiesta Ajax con:perdere css dopo jquery carico ajax

$('container').load('path_to_div #div_id'); 

perdo tutto il CSS e script che è stato associato a tale div

Qualsiasi idea si prega

+0

da Associated, vuoi dire "dentro" il div (dichiarata all'interno) o si verifica un problema in cui lo stile non sono più applicata e javascript evento è sciolto? Gli stili – FMaz008

+0

e javascript non vengono più applicati – user765368

+0

Probabilmente è perché gli stili applicati all'altra non corrispondono più al nuovo elemento. Pertanto sono stati ignorati. –

risposta

0

È possibile caricare il CSS dinamicamente come in this answer o aggiungerli al file CSS della pagina in cui si sta caricando il div.

Per quanto riguarda gli script esterni, $.getScript() dovrebbe risolvere il problema.

1

Sì, tutti i gestori di eventi che sono stati collegati verranno disconnessi quando il contenuto viene sostituito da AJAX. Puoi utilizzare jQuery .on() o .live() come hook di eventi alternativi per impedirlo.

Per quanto riguarda il CSS, probabilmente hai un nome di classe o un ID sul contenuto originale mancante nel contenuto sostituito, oppure il contenuto sostituito non corrisponde agli stessi selettori impostati nel CSS.

Senza vedere il tuo HTML/CSS è impossibile dirlo.

1

Includere tutti i CSS per l'elemento (e i relativi elementi secondari) in un file CSS incluso nella pagina principale in cui verrà caricato. Quindi, se hai main.html e stai caricando il div #div_id in quella pagina, ti consigliamo di includere il CSS per #div_id all'interno di main.html.

Si potrà anche includere uno script che può delegare i gestori di eventi, come ad esempio .delegate() (per le versioni di jQuery prima a 1,7) o .on() (per jQuery 1.7+), al AJAX contenuto caricato.

1

ho avuto che l'errore la soluzione era:

$('#contentPagina').load(nombrePagina,function(){ $('#contentPagina').trigger('create'); });

+0

Lo sto cercando da un'ora ormai. Grazie! –

Problemi correlati