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

jQuery Discussion :

Gestion des events


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 54
    Par défaut Gestion des events
    Bonjour, Bonsoir,

    Avant de m'embarquer dans quelque chose d'impossible j'aimerais avoir quelques avis éclairés sur la question que voici :

    Est-il possible de modifier en AJAX des évènements liés à un node HTML ?
    Par exemple si j'ai un <td></td> sur lequel il existe un onclick=alert("bop") et que je veux l'enlever pour y mettre en AJAX un onclick=alert("jambon"), comment dois-je procéder ?

    Je poste dans la section "jQuery" parce que je suis à fond dans jQuery en ce moment mais si vous avez un solution qui sort de ce cadre n'hésitez pas.

    Merci.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('machin').onclick=function(){alert('paté cornichons');}
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 54
    Par défaut
    Bin oui mais non, enfin c'est vrai qu'il faut que vous sachiez que ma fonction de remplacement vient tout droit du merveilleux côté PHP de l'AJAX, donc elle arrive au format texte.

    En clair j'ai : var fonction = "alert('paté cornichons');" et je voudrais faire en sorte que cette chaîne de caractères remplace ma fonction alert("bop") lors de l'onclick event.

    Est-ce possible ?

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    c'est possible avec un code sale ...
    Mais pour moi c'est un erreur de conception au départ.
    Le code js doit etre sur la page ou dans un fichier js.
    Ajax ne doit servir qu'a recupérer des données sous forme de string que l'on peut evaluer en json. voire eventuellement du code html. mais pas de code js.
    Dans ma vision rien ne justifie de ne pas prevoir les fonctions et le code js par avance, reste à lui passer juste les données.
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 59
    Par défaut
    C'est la fin de l'après midi et je viens de ma taper une journée de boulot, donc je vais surement dire une connerie mais ...

    Si c'est réellement un alert("trucmuche") que tu veux faire... pourquoi ne pas déplacer le "truc-muche" dans un input type hidden et du coup paramétrer ton alert avec la valeur du champ input ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    alert($('iddeinputtrucmuche').val());
    Je sais pas si ca peut t'aider et peut être que ca ne fait que déplacer le problème.

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Par défaut
    Bonjour,

    un bête eval() ne ferait pas l'affaire ?

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    c'est possible avec un code sale ...
    Mais pour moi c'est un erreur de conception au départ.
    Le code js doit etre sur la page ou dans un fichier js.
    Ajax ne doit servir qu'a recupérer des données sous forme de string que l'on peut evaluer en json. voire eventuellement du code html. mais pas de code js.
    Dans ma vision rien ne justifie de ne pas prevoir les fonctions et le code js par avance, reste à lui passer juste les données.
    Entièrement d'accord Spaffy.

    D'autant qu'il est possible de créer une balise script et d'en fixer l'attribut src dynamiquement.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Je reste persuadé quand je vois ce genre de questions qu'il s'agit en fait au départ d'une erreur de conception.
    Pour moi les scripts doivent être présents sur la page ou dans des fichiers externes que l'on appelle au fur et a mesure des besoins éventuellement.
    On ne doit pas avoir besoin d'importer un script sous forme de texte et devoir l'évaluer! Seules les données sous forme de json devraient subit ce sort.
    Je ne vois pas quel script justifie de devoir être importé, ni le motif qui pousse à ce qu'il ne soit pas présent sur la page dès le départ ? La taille ? J'ai très rarement vu des scripts js de tailles considérables. Et de toute façon ça n'a pas l'air de gêner grand monde aujourd'hui d'utiliser des librairies plus que de raison.
    De plus si vraiment la taille pose un souci il faut alors passer par la modification du src d'un balise script, voire à la création de celle ci.
    Le seul cas de figure serait l'importation d'une page complète comportant des scripts, mais cela veut dire que l'on n'est pas maitre de la page importée et peut alors signifier que l'on pratique du leeching ?
    Bref l'eval de script pour moi n'a pas lieu d'être.
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

Discussions similaires

  1. [débutant]gestion des Events
    Par sacoum dans le forum C++/CLI
    Réponses: 8
    Dernier message: 26/06/2008, 11h04
  2. Gestion des events
    Par BruceBoc dans le forum SDL
    Réponses: 7
    Dernier message: 28/04/2007, 14h30
  3. [Conception] classes internes ou gestion des events
    Par TTKiBosse dans le forum Général Java
    Réponses: 2
    Dernier message: 06/12/2006, 18h25
  4. Gestion des event avec un objet ole MsExcel
    Par rdemont dans le forum Delphi
    Réponses: 3
    Dernier message: 03/07/2006, 16h08
  5. [C#] Gestion des Events d'un control Composite
    Par lord_paco dans le forum ASP.NET
    Réponses: 3
    Dernier message: 07/10/2005, 09h10

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