Recalculer DIV dynamiquement

Résolu
Nexii Messages postés 338 Date d'inscription   Statut Membre Dernière intervention   -  
Nexii Messages postés 338 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je rencontre un souci sur un développement web.

J'ai un div, avec du contenu texte/image. Le but est de charger un nouveau contenu dans ce div (nouveau texte ou image). J'ai réalisé cette partie en AJAX :
function chargerPage(url,id) {
	var xhr_object = null;
	var position = id;
	   if(window.XMLHttpRequest)  xhr_object = new XMLHttpRequest();
	  else
	    if (window.ActiveXObject)  xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); 

	// On ouvre la requete vers la page désirée
	xhr_object.open("GET", url, true);
	xhr_object.onreadystatechange = function(){
		if ( xhr_object.readyState == 4 ) {
			// j'affiche dans la DIV spécifiées le contenu retourné par le fichier
			document.getElementById(id).innerHTML = xhr_object.responseText;
		}
		divIdentResize();
	}
	// dans le cas du get
	xhr_object.send(null);
	divIdentResize();
}


Cette fonction est appelée lorsqu'on coche un bouton radio.

Le problème c'est que si le contenu appelée est plus petit que le contenu de base du div, le div n'est pas redimensionnée malgré l'appel de ma fonction divIdentResize();

function divIdentResize () {
	// Compte le nb de div parent
	var length = $('#content > div[title="parentDiv"]').length;
	
	var divHeight = new Array();
	var height =0;
	
	// Boucle sur le nb de div parent
	for(i=0; i<length; i++) {
		var currentDiv = $("div#parent" + (i+1))
		// Récupère la hauteur du div courant
		height = currentDiv.height();
		// Attribut la taille du div parent sur tous les div enfants
		$("div#parent" + (i+1) + " div").css("height",height);
		// Attribut la taille du div parent en line-height des div.identifiants pour les centrer verticalement
		$("div#parent" + (i+1) + " div.identifiant p").css("line-height", height+"px");	
	}
}


Comment relancer le chargement du div avec son nouveau contenu, sans évidemment recharger la page entière ?

Merci de votre aide.

1 réponse

Utilisateur anonyme
 
Déjà pourqui l'appel AJAX tu le fait avec du JS pur alors qu'ensuite tu utilises jQuery, et que l'appel AJAX avec jQuery est beaucoup plus propre? Après tu peux pas le faire en CSS pur? Pourquoi ta div à une taille précis?
Ensuite tu peux montrer ton HTMl avec ton DIV car je comprend pas trop ton JS sinon.
0
Nexii Messages postés 338 Date d'inscription   Statut Membre Dernière intervention   588
 
L'appel AJAX est en pur js car je l'ai repris sur un poste. Je vais chercher pour une version jQuery alors (.load() ?)

Ma div n'a pas de taille précise, mais j'ai un div parent, qui en contient 4 qui doivent être alignés horizontalement, et les 2 div centraux doivent avoir un texte également centrer verticalement. Comme le DIV s'adapte au contenu, je dois calculer à chaque fois la taille du div pour leur attribuer une line height.

Mais je me suis cassé la tête pour un truc très bidon, il suffit d'utiliser height : auto;

Merci de ton intérêt.
0