Petit souci sur un addeventlistener

SeNeO64 Messages postés 28 Date d'inscription vendredi 6 mai 2005 Statut Membre Dernière intervention 22 août 2007 - 11 avril 2007 à 10:48
SeNeO64 Messages postés 28 Date d'inscription vendredi 6 mai 2005 Statut Membre Dernière intervention 22 août 2007 - 11 avril 2007 à 12:40
Bonjour tt le monde.

J'ai un petit soucis sur une page. Dans un tableau, j'affiche dans une colonne un lien. Ce lien a un "name" qui vaut pop. Dans une fonction javascript apellé au chargement de la page, je récupère tous mes element (/liens) ayant le nom pop auquel je rajoute un addevent listener.
Seulement, ca marche pas. Je récupère bien mes éléments, j'ai fait des tests. Et qui plus ai j'ai testé un lien bidon hors du tableau avec le nom pop et donc la meme fonction derrière et ca marche.
Je voit absolument pas ou est mon problème, est-ce que c'est "l'attachement" de l'eventlistener qui marche pas, ou celui-ci qui foire. J'ai mis un alert au tout début de la fonction qu'il apelle lors du click et celui ci ne s'affiche pas dans les liens du tableaux.

j'vous met un peu de code:
lien contenu dans le tableaux:
<td class="bouton"><a href="add_modification.php?id=23" name="pop">Modifier</a></td>

Lien de test en bas de la page

<a href="tfesddf" name="pop">sd ads</a>

Fonction java script:

function popup()
{
    alert("j'sui dans pop-up");
    var newwindow=window.open(this.href, '', 'scrollbars=yes,resizable=yes');
    this.href=window.location;
    if(window.focus) {
        newwindow.focus()
    }
    return false;
}

window.addEventListener('load', initbouton, false);

function initbouton(){
    var liste = document.getElementsByName('pop');
    for(var i=0; i<liste.length; i++){
        //alert(liste[i]);
        liste[i].addEventListener('click', popup, false);
        //liste[i].className="duc";
        //alert(liste[i].href);
    }
}
A voir également:

4 réponses

stfou Messages postés 450 Date d'inscription samedi 16 avril 2005 Statut Membre Dernière intervention 18 avril 2007 3
11 avril 2007 à 11:08
Bonjour, pourquoi utiliser un addeventlistener ? window.document.onload=initbouton;

<hr /><hr />STFOU
0
cs_roro06 Messages postés 732 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 29 octobre 2007
11 avril 2007 à 11:25
Bonjour




utiliser un addEventListener est un bon reflexe, car cela permet d'en ajouter autant que nécessaire. Cependant certains navigateurs ne le "comprennent" pas. Il faut utiliser à la place attachEvent.

Moi, je fait  :
(window.attachEvent)?
    window.attachEvent("onload", initbouton) :
    window.addEventListener("load", initbouton, false);

Pour le reste, pop est un mot reservé de javascript (j'aime pas trop, mais je ne suis pas certain que ça plante le script)

De plus, un evenement onclick qui ouvre un popup sur une ancre disposant déjà d'un href ...hum

(pop=methode de l'objet Array)
Cordialement
Roro webDev
0
SeNeO64 Messages postés 28 Date d'inscription vendredi 6 mai 2005 Statut Membre Dernière intervention 22 août 2007
11 avril 2007 à 11:47
okai, j'ai pas trop compris l'histoire d'ancre (j'me suis mis a js y'a pas trés longtemps).
Pour pop j'ai éssayé avec un autre mot, toujours le meme problème.
J'ai mieux cerner le soucis et ca viendrait d'un conflit avec un autre fonction.
J'continue sur cette voie et je vous tiens au courant.
0
SeNeO64 Messages postés 28 Date d'inscription vendredi 6 mai 2005 Statut Membre Dernière intervention 22 août 2007
11 avril 2007 à 12:40
Effectivement le soucis vient du conflit avec ces autres fonctions.
En fait, ma page contient une liste d'élément(rubrique) qui sont eux meme des listes d'élément(sous rubrique) qui sont eux memes des listes contenant un tableau en autre. Tout ca pour pouvoir appliquer le code source suivant : http://www.javascriptfr.com/code.aspx?ID=27705, qui permet de faire un menu expansif.et donc d'afficher que la rubrique/sous rubrique sélectionnée.
Si je ne met pas ce menu en 'action" en ajoutan id="menu" a mon premier ul, les popup fonctionnent correctement. Mais je ne trouve pas pourquoi ca marche pas.
Les fonctions du menu n'utilise pas le name pop, ma fonction n'utilise pas l'id menu.
Si quelqu'un peut me venir en aide ca serai symp ;)
Merci.
0
Rejoignez-nous