11545 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

J'utilise la fonction .attr() de jquery pour ouvrir un fichier php en lui envoyant des paramètres:

$(location).attr('href','./highcharts/fancybox.php?x="+objet.lonlat.lon+"&y="+objet.lonlat.lat+"&date="+gen_date+"&param="+gen_param+"');


Au lieu d'accéder à la page, j'aimerai qu'elle s'affiche dans une lightbox (fancybox). Le problème c'est que pour utiliser fancybox il faut spécifier une classe au lien, ce qui est facile lorsqu'on fait un lien en html.

J'en arrive à ma question: est-il possible de spécifier une classe avec l'attribut .attr() ? Ou plus largement, comment faire un lien avec une classe en javascript ?
Bonjour,

les methodes jquery pour gérer les classes sont nombreuses :
$('element').addClass("nomClasse")
$('element').removeClass("nomClasse");
//moins bien car il ecrasera les autres classes de l'élement en cours
$('element').attr('class', "nomClasse");
//enlève la classe de l'élément s'il la trouve, la met s'il ne la trouve pas
$('element').toggleClass("nomClasse");
Cela ne répond pas vraiment à ma question, qui n'est peut-être pas assez bien formulée. En gros, j'aimerai pouvoir donner à mon élément location à la fois une classe et une adresse. Si je rajoute la classe avant de lui donner l'adresse (comme ci-dessous), ça ne fonctionne pas:

$(location).toggleClass('various fancybox.ajax');
si ton element location est un lien

tu peux faire :

$("#location").addClass("nomDeTaClasse").attr("href", "tonLien")
sinon une classe avec des points dedans (various fancybox.ajax) tu ne peux avoir que des problème avec...Car la fonction $() va essayer d’interpréter le point...

essaye de renommer ta class fancybox.ajax en fancyboxAjax ce serait mieux !
La classe avec un point, ça vient de la doc de fancybox pour afficher les contenus avec de l'ajax. Apparemment sans le point il ne sait plus ouvrir la lightbox.

Sinon mon élément location n'est pas un lien à la base, c'est un objet géographique (matérialisé par un rond sur une carte dans ma page).

L'idée est d'en faire un lien vers une fiche descriptive qui s'ouvre dans une lightbox lorsqu'on clique dessus.
Bonjour,

j'ai déjà affiché un graphique highChart dans une fancybox après avoir cliqué sur un lien, et je n'ai pas eu besoin de cela.

Peux tu me montrer dans la doc de fancybox où il préconise de nommer la classe de ton élément fancybox.ajax ? Peut être que je pourrais t'aider plus si je le voyais expliqué dans la doc ?
Voilà le lien où ils en parlent: http://fancyapps.com/fancybox/#examples (onglet HTML à côté de Various types).

J'arrive à afficher la lightbox à partir d'un simple lien <a href> avec la classe indiquée, mais je bute pour faire la même chose à partir du lien en js.

Merci pour ton aide.
Modifié par Antonio (18 Apr 2012 - 15:58)
Bonjour,

je vois mieux maintenant, c'est la nouvelle version de fancybox.
a écrit :

Sinon mon élément location n'est pas un lien à la base, c'est un objet géographique (matérialisé par un rond sur une carte dans ma page).


peut être que la version de fancybox ne marche qu'avec les elements de type liens. c'est a dire qu'il ne vérifie la classe fancybox.ajax que lorsque l'élément appelant est un lien ?

Perso, j'ai fait quelque chose du type


$(location).live("click",function()
{
//montre le loader
$.fancybox.showActivity();
$.ajax(
			{ 
				url: myURl , 
				global: false,  
				type: "Get", 
				dataType: "html", 
				async:true,
				success: function(msg)
				{
						$.fancybox.hideActivity();
	   					$.fancybox(msg);
	   		   					
				   return false;
			    },
			    error: function()
			    {
					$.fancybox("An error occured while requesting the data");
			    }
			 });
});