Centrer du texte dans un tableau (colspan?)

Dans la console j’ai cela :

et dans personnalisation avancée rien d’autre.

Si je savais ou l’information du fichier ou le tableau de jeedom que l’on sélectionne dans la configuration.
Je pourrais regarder sont code.

J’ai pu obtenir les popup, une erreur de ma part parenthèse pas de problème et le tableau la case fusionne, mais des que j’enlève toute les alerte cela fonctionne plus, j’en laisse une alerte et cela fonctionne.

Je pense avoir trouver ce qu’il cloche, j’ai modifier le code rajouter parenthèse et point virgule :

$(document).ready(function() {
   //alert('avant fonction');
   var test = addColspan($("TD"));
   //alert('apres fonction');
 });

 function addColspan(Tabobjets) {
   		//alert('dans fonction');
		Tabobjets.each(function(objet) {
		if ($(this).css("column-span") != undefined)
		{
//alert('if 1');
			if ($(this).css("column-span") === 'all')
			{
 //alert('if 2');
				//console.log('test');
				var nbtd = $(this).siblings().length + 1;
				$($(this).siblings()).remove();
				$(this).attr('colspan',nbtd);        
			}               
		}
	});
};	

dans cette partis a la fin:
$(document).ready(function() {
//alert(‹ avant fonction ›);
var test = addColspan($(« TD »));
//alert(‹ apres fonction ›);
});

Et cela fonctionne une fois sur deux je pense a instant t un rafraîchissement ça fonctionne bisard quand même. Tu peu me confirmer.

1 « J'aime »

Oui, quand j’ai vu l’erreur dans ton post précédent.
j’allais te dire que tu avais oublié une parenthèse.

Oui, c’est une question de cache du navigateur.
comme ci, il ne passait pas dans la fonction tant qu’on force pas le rafraîchissement ( ou jeedom n’appelle pas personnalisation avancée, la première fois )

faut peut être demander à Loïc ( dev jeedom)… je ne sais pas les conditions pour qu’il passe systématiquement dedans

Ok, c’est lequelle @Loic, je peu communiquer ce poste, comme ça il pourra peu être faire quelque chose.

oui, si tu as plus d’infos, je suis preneur.

car je trouve ça frustrant que cela ne fonctionne pas tout le temps pour tout le monde.

Idem aussi. J ai dans le message @Loic. On verra demain. Car ce script bien utile je trouve.
J ai vue cela sur le site : Widget helper - need help on jeedom.cmd
Il utilise un dossier script mais j ai pas regarder comment il fait cela, comment il appel cela?

Bonjour,
Je pense qu’on ma tagué par erreur car je vois pas trop de truc pour moi la dedans

@Loic

On a une question sur une fonction de la personnalisation avancée pour permettre de faire du collapse de cellules.

Le problème c’est que ça ne fonctionne que pour certains navigateurs et lors d’un refresh (CTRL F5).

En cliquant sur un bouton d’un design, ça ne fonctionne plus donc on se demandait si les fonctions personnalisées était prise en compte par Jeedom à chaque fois ou pas.

J’ai vraiment pas assez d’information pour te repondre la desolé je comprends meme pas de quoi tu parle…

Oui elles sont prisent à chaque fois. A mon avis tu lance ta fonction js avant que le dom soit comme tu le souhaite …

@Kiboost Il y a une solution pour cela du coup? As-tu lu le post en entier car à chaque refresh cela ne fonctionne plus, et c’est un script qui est dans la personnalisation avancée, Désolé Loic on cherche une solution pour ce script qui soit toujours pris en compte par jeedom et a chaque refresh.

Tu peux te servir des fonctions de bases de jquery pour ca il a tout ce qu’il faut pour ne lancer un bout de code sur sur dom chargé. Par exemple ya bcp d’autres manière propre au js

Alors la, je peux pas cela je connais rien du tous en JavaScript, rajouter du code où comment à quel endroit?

Merci pour vos réponses

c’est pas dans $(document).ready(function()) qu’il faut appeler la fonction?

après ça modifie le dom ( fusion des cellules). y a pas une histoire de cache ou je ne sais quoi ?

y’a pas d’histoire de cache, le core balance les elements dans le dom et tu agit dessus en js.

$(function() {
    setTimeout(function(){
        /* CODE */
    }, 500)
}

A mon avis ton js s’execute avant la fin des appels ajax.
Après non, je n’ai pas tout lu.

1 « J'aime »

ah oui … les éléments n’auraient pas le temps d’être chargés .
comme c’est fait de façon asynchrone, la page est ready alors que les appels ajax sont potentiellement toujours en cours.

si j’ai bien compris.

A super une solution, on va arriver chouette. Je pense aussi au temps de latence du site quand on le rafraîchit. Pas de cache, car les caches sont la quand le navigateur est ouvert.
Quelque chose comme cela, j avais vue cette fonction peu être mieux ranger.

$(function() { 
setTimeout(function(){
$(document).ready(function() {
   //alert('avant fonction');
   var test = addColspan($("TD"));
   //alert('apres fonction');
 });

 function addColspan(Tabobjets) {
   		//alert('dans fonction');
		Tabobjets.each(function(objet) {
		if ($(this).css("column-span") != undefined)
		{
//alert('if 1');
			if ($(this).css("column-span") === 'all')
			{
 //alert('if 2');
				//console.log('test');
				var nbtd = $(this).siblings().length + 1;
				$($(this).siblings()).remove();
				$(this).attr('colspan',nbtd);        
			}               
		}
	});
};

}, 500) 
}

Une horreur ton code, tu melange tout

vite fait sans vérifier

function addColspan(_tabObjects) {
	if (!_tabObjects) return
	//alert('dans fonction')
	var nbtd
	_tabObjects.each(function() {
		if ($(this).css("column-span") != undefined)
		{
			//alert('if 1')
			if ($(this).css("column-span") === 'all')
			{
				//alert('if 2');
				//console.log('test');
				nbtd = $(this).siblings().length + 1
				$($(this).siblings()).remove()
				$(this).attr('colspan', nbtd)
			}
		}
	})
}

$(function() {
	setTimeout(function() {
		addColspan($("TD"))
	}, 1000)
})
1 « J'aime »

Désolé, j connais pas du tous Java et comme en faire, je début vraiment dans cette programmation suis plus pvp ou html. :grin: Merci beaucoup de ton aide.

Et… Ça marche avec ce nouveau code ?