Aller au contenu

Sujets conseillés

Posté (modifié)

Bonjours,

je me prend la tête pour faire un truc tout con :

rajouter des evenement onclick sur des liens ayant comme nom de classe 'aEvent'.

le but du jeu est d'appeler une fonction qui prend comme parametre le parametre dela requete php incluse dans href

exemple :

<a href="meteo.php?falaise=5">bla bla</a>

(il y a bien sur plusieurs liens comme ca dans la page)

et mon code :

		
//test des methodes
if (!document.getElementsByTagName) {return;}

//recuperation element
var oA = document.getElementsByTagName("a");

//si pas de lien <a>
if (!oA ) {return;}

//nombre le liens trouvés
var i = oA.length - 1;
for(i; i >= 0; i--)
{
// si le lien est de class 'aEvent'
if (oA[i].className == "aEvent")
{
//recup numero slide meteo
var sNum= oA[i].href;
sNum = sNum.substring(sNum.indexOf("=",0)+1,sNum.length + 1);

oA[i].onclick = function()
{
montremeteo( sNum);
return false;
}

}
}

lorsque je suis pas à pas ma fonction sois firebug, tout a l'air de bien se passer comme je le souhaite (sNum passe par toutes les valeur definies dans le XHTML).

seulement à la fin, tous mes liens appelent montremeteo('1') ou 1 est la dernière valeur prise par sNum

en esperant avoir clairement exposer mon probleme

et merci d'avance des reponses

fabien

Modifié par le fab
  • 3 semaines plus tard...
Posté

Hello, ça pourra peut-être t'aider, perso j'utilise ça pour faire s'ouvrir en popup des liens de class="popup", en recuperant le href qu'ils contiennet,

si ça peut t'aider ... :unsure:

function addPopupLinks() {
if (!document.getElementsByTagName) {
return null;
}
var anchors = document.getElementsByTagName("a");

/*
* recherche la balise <a> ayant l'attribut class="popup"
*/
for(var i=0; i < anchors.length; i++) {

var a = anchors[i];


if(anchors[i].className == "popup") {
var ref = anchors[i].href; // mémorise la valeur du lien
var u = anchors[i].getAttributeNode("onclick"); // récupère l'url qui est passée comme valeur

/*
* test à effectuer pour la compatibilité IE / FireFox
*/

if(u != null) {
if(u.value == 'null') {
u = null;
} else {
u = u.value;
}
}

/*
* Le test est obligatoire pour firefox car le setAttribute ne semble pas fonctionner comme sous IE
*/
if(! a.setAttribute("ref", ref)) {
a.ref = ref;
}

/*
* Définit l'action onclick sur le lien
*/
a.onclick = function(evt) {
window.open(this.ref, "popupFormulaire", "scrollbars=yes, resizable=yes, toolbar=no, menubar=no, location=no, directories=no, status=yes");
}

if(u != null) {
a.href = u; // le lien pointera à l'adresse passée dans le onclick
}
else {
a.href = "#"; // le lien pointera désormais sur lui même
a.removeAttribute("target"); // suppression de l'attribut target (utilisé par le maileur)
}
}
}
}

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...