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 :

Surcharger le onclick d'un TD dans un TR


Sujet :

jQuery

  1. #1
    Pgs
    Pgs est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    482
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 482
    Points : 100
    Points
    100
    Par défaut Surcharger le onclick d'un TD dans un TR
    Bonjour,

    J'utilise la class actionok pour les TR et je gère le onclick comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(document).on('click', '.actionok', function() {ajaxok(this);});
    Je voudrais avoir un traitement particulier pour un des TD de ces TR.
    J'ai appliqué à ce TD la même classe (actionok) qu'au TR, mais j'ai l'impression que l'évènement reste géré au niveau du TR.
    Comment faire pour gérer différement le onclick d'un TR et, par exception, celui d'un TD enfant de ce TR ?
    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 637
    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 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    l'action est appliquée a tous les .actionok

    si tu veux le limiter à un td du tr, au premier par exemple ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(document).on('click', 'tr.actionok > td:eq(0)', function() {ajaxok(this);});
    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
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    vous pouvez modifier le sélecteur comme cela par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(document).on('click', 'td.actionok', function () { });
    une autre solution serait de récupérer l'objet de l'évènement comme cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(document).on('click', '.actionok', function (evenement) { console.log(evenement); });
    cet objet contient des informations sur, par exemple, quel endroit a été cliqué

  4. #4
    Pgs
    Pgs est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    482
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 482
    Points : 100
    Points
    100
    Par défaut
    Merci pour vos explications.

    En fait,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(document).on('click', '.actionok', function() {ajaxok(this);});
    me sert pour tous les objets pour lesquels un click doit lancer une action.

    Comme la fonction ajax transmet au serveur l'id de l'objet, le serveur sait quoi faire quel que soit l'objet à l'origine de l'évènement.

    Mon problème est que je vous voudrais qu'un click sur un TR lance ajaxok en lui passant ce TR comme objet, sauf quand le click a lieu sur le dernier TD de ce TR où là, je veux qu'il lance ajaxok en lui passant ce TD comme objet.

    Et si j'applique la classe "actionok" à un TR et à son dernier TD, c'est l'objet TR qui est transféré même si je clique sur son dernier TD. On dirait que l'évènement est géré en priorité au niveau du TR.

    J'ai bien noté votre remarque selon laquelle je peux définir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(document).on('click', 'tr.actionok > td:eq(0)', function() {ajaxok(this);});
    Mais dans ce cas, l'action n'est plus définie au niveau du TR.

  5. #5
    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 637
    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 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    si tu veux définir à la fois une action sur le tr et une action différente sur le td tu as deux possibilités

    soit déclarer deux actions (donc deux selecteurs)
    soit détecter au sein d'une même attribution d'event quel est l'élément source du déclenchement de l'event
    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 !

  6. #6
    Pgs
    Pgs est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    482
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 482
    Points : 100
    Points
    100
    Par défaut
    Merci pour tes explications.
    Mais je ne comprends pas ce qui se passe si je définis la même action au niveau d'un TR et au niveau d'un de ses TD et si je clique sur ce TD.
    L'action va-t-elle se produire 2 fois ?

  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 637
    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 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    si tu cliques sur un td, le click remontera au tr sauf si tu stoppe le bubbling (la remontée de l'event au parent ) avec un stopPropagation sur le td, alors le click sur le td ne remontera pas au tr
    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
    Pgs
    Pgs est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    482
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 482
    Points : 100
    Points
    100
    Par défaut
    Merci

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

Discussions similaires

  1. Surcharge de onclick() et récupération de contexte
    Par Neocompo dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 20/07/2009, 15h11
  2. Réponses: 4
    Dernier message: 29/01/2008, 14h08
  3. Réponses: 2
    Dernier message: 10/05/2007, 17h29
  4. Réponses: 3
    Dernier message: 06/04/2007, 20h06
  5. Réponses: 13
    Dernier message: 13/01/2007, 12h46

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