11402 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous !

Je suis en train de terminer mon site perso, et alors qu'il marche bien sous Firefox il y a un bug sous Chrome et Safari. Quand les liens "CV" et "book" sont activés puis fermés, le placement des éléments est complètement modifié.

Le lien vers mon site : www.quaibleu.com

En jetant un coup d'oeil à la console Javascript, j'ai remarqué une erreur en ligne 1 d'un script que j'utilise pour que mon site soit "responsive". La console dit : Uncaught SyntaxError: Unexpected token (

Voilà le script que j'utilise :
function () (
	var window-width = jQuery(window).width(),
		container = jQuery('#wrapper'),
		page_width = 0;
		
	container.children().each(function(index) {
		var incl_margin = true,
			$this = jQuery(this);
			
		if(parseInt($this.css('margin-left')) < 0 || parseInt($this.css('margin-right')) < 0) {
			var incl_margin = false;
			}
			
		var width = $this.outerWidth(incl_margin);
		page_width += width;
		
	});
	
	if (page_width > 0)
		container.css({'width' : page_width + 'px'});
	}


J'ai essayé de rajouter une accolade en ligne 1 mais ça n'a pas résolu le problème.

C'est surement une erreur toute bête Smiley biggol !! Merci d'avance pour votre aide ^^
Bonjour clara_noob et bienvenue sur le forum Smiley smile

En regardant rapidement le code de la page, je vois que tu as intégré deux versions de jQuery… il n'y aurait pas tout simplement un conflit ? Essaye d'enlever l'un des deux appels pour commencer Smiley smile
Ah c'est vrai que j'ai laissé une version en trop ! c'est un peu fouillis dans mon site Smiley ohwell
J'ai supprimé une version et l'erreur est toujours là
salut,
y'a deux erreurs.
Il existe les fonctions anonymes qu'on peut appeler immédiatement sans les affilier à une variable :

(function(){
   alert("Salut");
})()

On les met entre parenthèses pour garder la référence le temps de l'exécution. On utilise cette écriture pour protéger par exemple le nom de variables ou avoir une référence immédiate à un objet. C'est le cas pour JQuery.
Si ta fonction n'est pas de ce type, elle doit impérativement porter un nom :

function maFonction() {}

L'autre erreur est l'utilisation du tiret "-" dans le nom de variables. On ne peut tout simplement pas le faire.

Donc au final :

function unNom() {
	var window_width = jQuery(window).width(),
		container = jQuery('#wrapper'),
		page_width = 0;
		
	container.children().each(function(index) {
		var incl_margin = true,
			$this = jQuery(this);
			
		if(parseInt($this.css('margin-left')) < 0 || parseInt($this.css('margin-right')) < 0) {
			var incl_margin = false;
			}
			
		var width = $this.outerWidth(incl_margin);
		page_width += width;
		
	});
	
	if (page_width > 0)
		container.css({'width' : page_width + 'px'});
	}

Voir déjà ce que ça donne.
Merci pour ces explications !

En ajoutant un nom à la fonction, je n'ai plus d'erreur dans la console Smiley biggrin

Mais mon site fait toujours des siennes sur safari et chrome, quand les boutons CV et book sont activés puis fermés.

Comme il n'y a plus d'erreur de console je ne sais pas du tout d'où ça vient. Peut-être un préfixe manquant pour Webkit ?

Ou ce serait peut-être l'utilisation de plusieurs scripts responsive : j'en utilise un pour la largeur du site et un pour ma gallerie et mon CV (Magnific popup)
Je vais essayer de changer de plugin pour voir si ça résout le problème !
Je n'ai pas assez de connaissances en javascript pour démêler tout ça Smiley lol

Merci pour votre aide !!
C'est résolu !!

Merci beaucoup Zelalsan !! En enlevant overflow:hidden ça marche parfaitement !!

C'est top Smiley smile
Merci 1000 fois !
Bon dimanche !!