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 :

Gestion d'évenement apres Ajax.Request [Prototype]


Sujet :

Bibliothèques & Frameworks

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 35
    Points : 24
    Points
    24
    Par défaut Gestion d'évenement apres Ajax.Request
    Bonjour,

    Je viens chercher un peu d'aide par ici, car je m'en sors difficilement depuis ce matin avec un problème de gestion d'événements.

    J'ai un gestionnaire d'évenements en place qui surveille les clicks sur tous les éléments possédant une class css 'e'. Mais lorsque je regenère les élements par Xhr (Ajax.Request de 'prototype' en l'occurence) le gestionnaire ne fonctionne plus. Voici un détail de ma procédure.

    J'ai créé un objet de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     // Creation de la class(objet) menu
    var oEdit = Class.create();
    oEdit.prototype = {
     
      initialize: function() { 	
    		$('contenu').getElementsByClassName('e').each( function(n) {
    			Event.observe(n, 'click', this.edit.bindAsEventListener(this));	
    		}.bind(this));	
    	},
     
    edit: function........
     
    }
    dans cette objet(ou class si vous préferez) j'ai une fonction pour un traitement en XHR comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    new Ajax.Request('/proxy.php', {
     
            method: 'get',
            parameters: pars,
            onSuccess: function(requester) {
                $('contenu').innerHTML = requester.responseText;
                // J'ai tenté ici de relancer Event.Observe sur mes éléments 'e', sans succès
            }			
    });
    Le problème c'est qu'une fois le traitement AJAX effectué, Event.Observe ne fonctionne plus. C'est manifestement dû au fait que je regenère les éléments observés.

    Je vais pas approfondire pour le moment mais si une âme généreuse veux bien m'aider à démeler mon sac de noeud, merci d'avance

    Fab

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 35
    Points : 24
    Points
    24
    Par défaut
    Auto réponse (enfin une solution parmis d'autres j'imagine)

    Il suffit d'insérer un bout de code js, dans le fichier ciblé par la requete xhr, et bien penser à interpreter le js avec un eval, sinon ça ne marchera pas.

    Comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    		new Ajax.Updater('contenu', '/proxy.php', {
    			asynchronous: true,
    			method: "get",
    			evalScripts: true,// La partie importante
    			parameters: pars
    		});
    Pour le fichier proxy.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $sortie .= '
    <script type="text/javascript">
     
    	var editBis = new oEdit();
     
    	$(\'contenu\').getElementsByClassName(\'e\').each( function(n) {	
    		Event.observe(n, \'click\', function() {editBis.edit.bindAsEventListener(editBis);});	
    	}.bind(this));		
    </script>';
     
    echo $sortie;
    Si quelqu'un à une meilleur solution uniquement coté Js je suis preneur

    Fab

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

Discussions similaires

  1. [AJAX] Ajax.Request et le caractère '+'
    Par jon301 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 08/11/2006, 21h34
  2. [VB2005] Gestion des évenement dans une fonction
    Par arnolem dans le forum Windows Forms
    Réponses: 8
    Dernier message: 24/07/2006, 09h07
  3. [Dojo] Gestion de planning avec AJAX
    Par Mac-Patxaran dans le forum Bibliothèques & Frameworks
    Réponses: 9
    Dernier message: 22/06/2006, 15h57
  4. [TComPort] gestion des évenements
    Par akabane dans le forum Composants VCL
    Réponses: 2
    Dernier message: 10/05/2006, 10h29
  5. [C#] Gestion du click apres le Page_Load
    Par ludo0 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 05/05/2004, 17h01

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