2012-02-08 4 views
5

tout le monde sait comment résoudre le problème de css après une requête Ajax avec $ .load? Par exemple, si je veux charger juste un DIV à partir d'une page Web, après ma demande Ajax avec:perdre css après jquery ajax charger

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

je perds tout le css et des scripts qui a été associé à cette div

Toute idée s'il vous plaît

+0

Par associé, vous voulez dire « à l'intérieur » de la div (déclarée à l'intérieur) ou si vous rencontrez un problème où le style ne sont plus appliqués et javascript événement sont non lié? – FMaz008

+0

Les styles et javascripts ne sont plus appliqués – user765368

+0

C'est probablement parce que les styles appliqués à l'autre ne correspondaient plus au nouvel élément. Par conséquent, ils ont été ignorés. –

Répondre

0

Vous pouvez charger le CSS dynamiquement comme dans this answer, ou les ajouter au fichier CSS de la page dans laquelle vous chargez la div. En ce qui concerne les scripts externes, $.getScript() devrait prendre soin de votre problème.

1

Oui, tous les gestionnaires d'événements qui ont été attachés seront déconnectés lorsque le contenu est remplacé par AJAX. Vous pouvez utiliser les options .on() ou .live() de jQuery pour éviter cela. En ce qui concerne le CSS, vous avez probablement un nom de classe ou un ID sur le contenu original qui manque sur le contenu remplacé, ou le contenu remplacé ne correspond pas aux mêmes sélecteurs que vous avez définis dans votre CSS.

Sans voir votre HTML/CSS, il est impossible de le dire.

1

Incluez tous les CSS pour l'élément (et ses enfants) dans un fichier CSS inclus dans la page principale dans laquelle vous allez le charger. Donc, si vous avez main.html, et que vous chargez le div #div_id dans cette page, vous devez inclure le CSS pour #div_id à main.html.

Vous aurez également d'inclure un script qui peut déléguer des gestionnaires d'événements, tels que .delegate() (pour les versions de jQuery avant 1.7) ou .on() (pour jQuery 1.7+), au contenu chargé AJAX.

1

J'ai eu cette erreur la solution était:

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

+0

Je cherche cela depuis une heure maintenant. Merci! –

Questions connexes