le fab Posté 15 Mars 2007 Posté 15 Mars 2007 (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é 15 Mars 2007 par le fab
yborean Posté 5 Avril 2007 Posté 5 Avril 2007 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 ... 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) } } }}
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant