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

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 54
    Points : 56
    Points
    56
    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 638
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 638
    Points : 66 668
    Points
    66 668
    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 du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 54
    Points : 56
    Points
    56
    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 638
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 638
    Points : 66 668
    Points
    66 668
    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 du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 59
    Points : 57
    Points
    57
    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 expérimenté
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

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

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


    devYan.

  7. #7
    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 638
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 638
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    le souci avec eval c'est qu'en plus d'être bête ... il est mechant ^^
    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 !

  8. #8
    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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    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

  9. #9
    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 638
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 638
    Points : 66 668
    Points
    66 668
    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 !

  10. #10
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

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

    Tout à fait d'accord avec vous.
    Mais là si c'est pour exécuter un alert() et bien eval() me semble la solution la plus simple.
    D'autant plus qu'à la lecture des différents échanges j'ai l'impression qu'il n'a pas la main sur le code côté serveur

    devyan


    devYan.

  11. #11
    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 638
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 638
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    pourquoi faire un eval pour un alert ???
    suffit de recupérer le string et faire un alert du string au lieu de faire un eval de l'alert du string ...
    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 !

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 54
    Points : 56
    Points
    56
    Par défaut
    Pwaaa, faut faire gaffe à ce qu'on dit, on dirait que ça extrapole rapidement... je vais préciser encore plus alors.

    J'utilise une fonction javascript overlib() qui gère l'affichage du texte que je lui passe en paramètre.
    Par exemple <td onmouseover="overlib('bonjour')"></td>
    Je donne la possibilité à l'utilisateur de mettre en BDD des textes, je lui donne aussi la possibilité de choisir parmi les textes présents dans la BDD celui qu'il voudrait afficher au niveau du <td></td>. Quand il a choisi, il clique sur "enregistrer" et, en AJAX, le contenu de l'overlib(...) change.
    Donc j'ai un texte côté serveur et je voudrais m'en servir pour remplacer celui qui se trouve dans la fonction overlib(...).
    Je me suis alors dit qu'il pourrait être pratique d'envoyer toute la fonction depuis PHP sous forme d'une chaine "overlib('texte')" et de remplacer entièrement l'onmouseover. Comme ça si je veux afficher un autre texte sans utiliser overlib() je peux gérer ça côté serveur. Je ne vois pas trop comment faire ça proprement....... <-- première possibilité
    Après, si ça vous semble trop bizarre, je peux fixer overlib() dans le code client et ne changer que le texte à l'intérieur de l'overlib(). Reste à savoir comment faire. <-- deuxième possibilité

    Pour la deuxième possibilité, j'ai vu passer l'idée de récupérer le texte dans un input et de faire overlib($("#id_input").val()). Si ça marche pourquoi pas, mais ça va me faire un input par <td></td> et j'en ai beaucoup.....



    Sinon pour le moment je code en local donc j'ai la main sur le code côté serveur et la main sur le serveur aussi, je peux donc le supprimer, le tuer, le ressusciter, le faire s'auto-digérer et lancer l'autodestruction avec un petit message, avant que la console ne disparaisse à son tour, qui me dit : "autodestruction réussie".

    Donc si vous avez des suggestions à faire côté serveur aussi, je ne dis pas non.

    Et merci pour vos idées.

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