Href et appel fonctions

Fermé
arnlig3550 Messages postés 47 Date d'inscription mercredi 12 janvier 2011 Statut Membre Dernière intervention 13 février 2024 - 7 déc. 2012 à 11:19
arnlig3550 Messages postés 47 Date d'inscription mercredi 12 janvier 2011 Statut Membre Dernière intervention 13 février 2024 - 7 déc. 2012 à 13:31
Bonjour à tous,

J'ai un soucis avec un action a déclencher sur un lien du type :

<a href="#"> voir les photos ...</a>


J'aimerais que ce lien déclencle la même action que le bouton "Photos" de mon menu, dont voici son code html :

<nav>
        <a href="#accueil" rel="page-accueil" class="active">Accueil</a>
	<a href="#presentation" rel="page-presentation">Presentation</a>
	<a href="#photos" rel="page-photos">Photos</a>
	<a href="#plan" rel="page-plan">Plan d'accès</a>
	<a href="#contact" rel="page-contact">Contact</a>
</nav>



et son code JS :

var _is_animating_page = false;
	$('#header nav a').click(function() {
		if ($(this).hasClass('active') || _is_animating_page) return false;
 
		if ($(this).hasClass('none')) {
			document.location = $(this).attr('href');
			return false;
		}
 
		_is_animating_page = true;
 
		var div 			= '<div class="back-nav"></div>',
			_width 			= $(this).outerWidth(), 
			_height 		= $(this).outerHeight(), 
			_top 			= $(this).offset().top, 
			_left 			= $(this).offset().left,
			_rel 			= $(this).attr('rel'),
			_width_page 	= $(window).width(),
			_final_width 	= ($(this).index() > $('#header nav a.active').index()) ? _width_page : -_width_page;
 
		$('#header nav a.active').removeClass('active');
		$(this).addClass('active');
 
		$('body').css({'overflow':'hidden'});
 
		$('.page.active').css({'position':'absolute', 'width':'100%'}).animate({left:'-='+_final_width}, 500, 'easeInExpo', function() {
			$('.page.active').css({'position':'relative', 'width': 'auto', 'left': 'auto'}).removeClass('active').hide();
			$('#'+_rel).addClass('active').show().css({'position':'relative', 'width':'100%', 'left': _final_width}).animate({left:0}, 500, 'easeOutExpo', function() {
				$('body').css({'overflow':'auto'});
				_is_animating_page = false;
			});
		});
 
		return false;
	});



J'ai essayé de remettre le même code à mon lien comme au bouton du menu, cet à dire :

<a href="#photos" rel="page-photos"> voir les photos ...</a>



Mais ça ne fonctionne pas, et j'ai essayé la fonction trigger comme ceci:

$('#news2 p a').click(function() {
		$('#header nav a[rel="page-photos"]').trigger('click');
		return false;
	});



Mais ça ne fonctionne pas non plus, l'ai-je bien écris ?

Quelqu'un peut-il m'aider à résoudre ce problème ?

Merci


5 réponses

Freedomsoul Messages postés 509 Date d'inscription lundi 9 mai 2011 Statut Membre Dernière intervention 17 avril 2013 97
7 déc. 2012 à 11:23
Ton evenement JS se déclenche sur les elements du type :

$('#header nav a')

dans un block ayant l'id header
Dans une balise <nav>
pour les balises <a>

donc il faut que, sois tu mettes ton lien sous cette forme,
sois tu ajoutes une class, qui tu ajouteras dans ton $('#header nav a')</

sois que tu déclenches l'évenement a partir d'une autres fonction (--)
0
arnlig3550 Messages postés 47 Date d'inscription mercredi 12 janvier 2011 Statut Membre Dernière intervention 13 février 2024
7 déc. 2012 à 11:49
Merci pour cette réponse

Pour la solution 1 (mettre le lien sous cette forme), j'ai essayer aussi, mais ça ne fonctionne pas, ou faudrait que je rajoute mes autre boutons du menu au même endroits (ou modifié la fonction que pour 1 bouton)

Je serai partant pour la solution 2 (ajouter une class), mais comment procéder ? j'ai du mal avec le JS désolé

Pouvez vous m'aider ?
0
Freedomsoul Messages postés 509 Date d'inscription lundi 9 mai 2011 Statut Membre Dernière intervention 17 avril 2013 97
7 déc. 2012 à 11:52
Et bien il faudrait ajouter

<a class="Click_Photo" href="#"> voir les photos ...</a>

Et modifier :

$('#header nav a')

par

$('#header nav a, .Click_Photo')



Si je ne me trompe pas :P
0
arnlig3550 Messages postés 47 Date d'inscription mercredi 12 janvier 2011 Statut Membre Dernière intervention 13 février 2024
7 déc. 2012 à 12:07
j'ai testé mais ça ne fonctionne pas

j'aperçois le "#" qui s'ajoute dans la barre d'adresse du navigateur, et je suis pas redirigé vers mes photos grr..! ^^

une autre idée ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
arnlig3550 Messages postés 47 Date d'inscription mercredi 12 janvier 2011 Statut Membre Dernière intervention 13 février 2024
7 déc. 2012 à 13:31
en cherchant j'ai trouvé ça:

https://stackoverflow.com/questions/12401659/fancybox-how-to-open-specific-image-in-a-gallery-using-fancybox-via-manual-cal

ça ressemble beaucoup a ce que vous me disiez, mais ça ne marche pas non plus !

ça ne devrais pourtant pas être si sorcier que ça ^^
0