IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques & Frameworks Discussion :

Event.observe : Ne marche qu'une fois [Prototype]


Sujet :

Bibliothèques & Frameworks

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 32
    Par défaut Event.observe : Ne marche qu'une fois
    Bonjour,

    Je développe un site qui permet aux utilisateurs de créer des albums. A chaque création d'album, un lien est ajouté dans le menu du site.
    Si je teste mon script en ajoutant un lien "album_1" , ça marche parfaitement. En revanche, dès que je recommence l'opération avec un "album_2" par exemple. Les deux liens "album_1" ainsi qu' "album_2" vont pointer sur "album_2" et ainsi de suite. Tous les liens créés finissent par pointer sur le dernier album ajouté.
    Voilà le script:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    new Ajax.Request('fonctions_PHP/creer_album.php',{
    		method: 'post',
    		parameters: $H({'auteur_id':membre_id, 'album_nom':album_nom}),
    		evalScripts: true,
    		onSuccess:function(requester){
    			data = requester.responseText.evalJSON();
    			new Insertion.Top('liste_albums','<li><a href="#" id="album_'+data.album_id+'">'+album_nom+'</a></li>');
    			$('album_'+data.album_id).observe('click',function(event){charger_album(data.album_id);});
    			new Effect.Highlight('album_'+data.album_id);
    		}
    	});
    En revanche, chaque lien créé garde bien son ID propre.
    Le problème réside dans le gestionnaire d'événement de prototype.

    J'ai cependant réussi à apporter une solution à ce problème mais elle ne me convient pas. Cad, plutôt que d'exécuter une Request, j'effectue un Updater sur une balise "<script>" et je fais une Insertion.

    En espérant que quelqu'un à réussi à se défaire d'un problème similaire!

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 32
    Par défaut Auto réponse
    Voilà la solution propre:

    il faut remplacer cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $('album_'+data.album_id).observe('click',function(event){charger_album(data.album_id);});
    par celle-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    new Event.observe('click',charger_album.bindAsEventListener(this,data.album_id));

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 14/09/2007, 12h02
  2. Macro qui marche qu'une fois
    Par baski dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/06/2007, 22h55
  3. Fonction javascript qui marche qu'une fois sous Firefox
    Par ns_deux dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 30/08/2006, 10h38
  4. Adodc1 ne marche qu'une fois ?
    Par VARACH dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 04/04/2006, 13h57
  5. [applet]ne marche qu'une fois..
    Par woorant dans le forum Applets
    Réponses: 2
    Dernier message: 22/02/2006, 10h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo