Problème avec deux fonctions javascript. [Résolu/Fermé]

Signaler
Messages postés
153
Date d'inscription
jeudi 18 juin 2009
Statut
Membre
Dernière intervention
8 février 2016
-
Messages postés
153
Date d'inscription
jeudi 18 juin 2009
Statut
Membre
Dernière intervention
8 février 2016
-
Bonjour,

Je n'arrive pas à associer deux fonction javascript ensembles il y a que une ou l'autre fonction qui va mais jamais les deux en même temps.

Voici mes fonctions :

$(document).ready(function() {
	$('#menu a').click(function() {
		//PREMIERE FONCTION
		var page = $(this).attr('href');
		$('#content').load('content/' + page + '.php');
		return false;

		//DEUXIEME FONCTION
		window.history.pushState("", "", "/" + page);
	});
});


Si je supprime une des deux fonctions l'autre fonctionne parfaitement donc il n'y à pas de problème dans les fonctions mais un problème pour les faire fonctionner ensemble.

5 réponses

Messages postés
1706
Date d'inscription
jeudi 28 août 2008
Statut
Membre
Dernière intervention
13 mai 2018
348
Bonjour,

C'est pas clair, je ne vois pas deux fonctions dans ton codes, il y en a qu'une seule.
Le "return false" est une indication de fin de fonction: il est donc normal que tout code en dessous ne soit pas exécuté.
Messages postés
153
Date d'inscription
jeudi 18 juin 2009
Statut
Membre
Dernière intervention
8 février 2016
8
Ok tu doit pas connaitre le javascript toi lol

Quand ont marque "//" sa veut dire que c'est un commentaire.
Donc ce qui est en dessus de //PREMIERE FONCTION c'est la première et l'autre c'est la seconde pas compliqué pourtant...
Messages postés
153
Date d'inscription
jeudi 18 juin 2009
Statut
Membre
Dernière intervention
8 février 2016
8
up
Messages postés
153
Date d'inscription
jeudi 18 juin 2009
Statut
Membre
Dernière intervention
8 février 2016
8
up.
Messages postés
1706
Date d'inscription
jeudi 28 août 2008
Statut
Membre
Dernière intervention
13 mai 2018
348
une fonction c'est function(parameter) { }
là il y en a qu'une seule.
et je sais très bien que // signifie un commentaire.
Utilisateur anonyme
Aka13 ne semble pas très bien connaître le javascript, mais il n'a pas complètement tort non plus. Il parle simplement de deux fonctions sans autre précision : tu as interprété "définition de fonction" alors que dans son esprit c'était apparemment "appel de fonction".

Bonjour

Ok tu doit pas connaitre le javascript toi lol
Non, il est clair que c'est toi qui ne connais pas le javascript.
Sinon, au lieu de faire des up, tu aurais tenu compte de la bonne explication déjà donnée par A.Nonymous. Dès que tu exécutes le "return false" tu quittes la fonction et ce qu'il y a après n'est jamais exécuté.
Messages postés
1706
Date d'inscription
jeudi 28 août 2008
Statut
Membre
Dernière intervention
13 mai 2018
348
+1
return signifie d'envoyer un code retour pour mettre fin à la fonction.
Messages postés
153
Date d'inscription
jeudi 18 juin 2009
Statut
Membre
Dernière intervention
8 février 2016
8
Si je met "return false" à la fin sa change rien il y a toujours que UNE des deux "définition de fonction" qui fonctionne.
Mettre "return false" à la fin ne peut que débloquer la situation et exécuter les 2 parties de fonction.
Le JS a-t-il bien été actualisé ?
Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
889
je n'ai pas trop creusé à quoi servent ces deux instructions:

//PREMIERE FONCTION
var page = $(this).attr('href');
$('#content').load('content/' + page + '.php');
return false;

//DEUXIEME FONCTION
window.history.pushState("", "", "/" + page);

mais apparemment chacune charge une autre page, donc quand la nouvelle page est affichée, dans cette nouvelle page il n'y a plus la deuxième "fonction", puisque ton script est dans la page origine.
Messages postés
153
Date d'inscription
jeudi 18 juin 2009
Statut
Membre
Dernière intervention
8 février 2016
8
Merci Alain

J'ai trouvé comment résoudre le problème
J'ai remplacer window.history.pushState par history.pushState