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

JavaScript Discussion :

Déclencher un <a /> depuis l'élément parent


Sujet :

JavaScript

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 9
    Par défaut Déclencher un <a /> depuis l'élément parent
    Bonjour, très débutant en javascript et dév web en général (j'aime pas ça !), je suis confronté à un soucis qui je suis sur ne va pas vous causer de maux de têtes.

    J'ai un
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <td onclick='this.firstChild.click()'> <a href='link' /> </td>

    L'idée est que, le texte du <a /> ne remplissant pas le <td>, j'aimerais tout de même en cliquant sur la cellule que le lien soit cliqué, et ce par le biais de this.firstChild.click(), qui marche très bien sur IE, et pas du tout chez les autres.

    En debuggant sur Chrome le onclick est bien lancé, j'imagine donc que c'est la syntaxe this.firstChild.click() qui est obsolète et que IE reste compatible parce que IE c'est pas bien ?

    Des bisous

  2. #2
    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 : 54
    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
    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

  3. #3
    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
    ton href est un lien ou un appel de fonction ?.

    si c'est un lien:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td onclick="self.location.href=this.getELementsByTagName('a')[0].href"> <a href='link' /> </td>
    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 !

  4. #4
    Membre régulier
    Inscrit en
    Novembre 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 9
    Par défaut
    Ca confirme : j'aime pas le dév web !

    Merci pour vos réponses rapides, avant de m'aventurer dans la suppression des espaces, il s'agit d'un appel à une fonction JS, y'a-t-il une solution avec une variante de ton code SpaceFrog ?

  5. #5
    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 : 54
    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 Picpus
    y'a-t-il une solution avec une variante de ton code SpaceFrog ?
    Oui, un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.getElementsByTagName('a')[0].click()
    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

  6. #6
    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
    variante ?
    Ma solution se fiche des espace puisqu'elle choppe la première balise <a> enfant ...
    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 !

  7. #7
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 098
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 098
    Par défaut
    +1 pour Spaffy ! getElementsByTagName est le moyen le plus efficace de ceux qui sont supportés par tous les navigateurs.

    Et je confirme, il n’y a pas de méthode click dans la spécification de l’élément <a> : la méthode click sur un lien n'est pas standard.

    Des bisous à toi aussi Picpus
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  8. #8
    Membre régulier
    Inscrit en
    Novembre 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 9
    Par défaut
    Farpait, <td onclick="document.location.href = this.getElementsByTagName('a')[0].href;"> fonctionne bien !

    Merci

  9. #9
    Membre émérite

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 411
    Par défaut
    Je suis peut-être HS mais si le but est de rendre le lien valide dans toute la cellule, un petit peu de CSS suffit (et compatible tout navigateur de base)

    exemple dans le cadre d'une hauteur fixe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    a{display:block;height:100%;}
    td{width:33px; height:40px;text-align:center;line-height:30px;}
    http://jsfiddle.net/Chouchen/rFqkR/1/

  10. #10
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    j'avoue que je ne comprends pas un simple
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <td onclick="document.location.href = 'link'">...</td>
    pourquoi mettre un a href dans la cellule et un javascript qui va chercher le dit lien pour trouver sa cible et enfin redéfinir la location de la page

    alors qu'il suffit dès le départ de mettre de la cible dans le code

    pourquoi faire simple ....
    A+JYT

  11. #11
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    Citation Envoyé par Shikiryu Voir le message
    Je suis peut-être HS mais si le but est de rendre le lien valide dans toute la cellule, un petit peu de CSS suffit (et compatible tout navigateur de base)

    exemple dans le cadre d'une hauteur fixe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    a{display:block;height:100%;}
    td{width:33px; height:40px;text-align:center;line-height:30px;}
    http://jsfiddle.net/Chouchen/rFqkR/1/
    Non car
    Citation Envoyé par Picpus Voir le message
    Bonjour, très débutant en javascript...
    L'idée est que, le texte du <a /> ne remplissant pas le <td>, j'aimerais tout de même en cliquant sur la cellule que le lien soit cliqué...
    A+JYT

  12. #12
    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
    a{display:block;height:100%;width:100%}
    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 !

  13. #13
    Membre émérite

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 411
    Par défaut
    Si tu mets en display:block, il prend automatiquement 100% du td en largeur

  14. #14
    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
    exact
    mais bon la ceinture ET les bretelles ^^
    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 !

  15. #15
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    avec
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    a{display:block;height:100%;width:100%}
    le lien va couvrir toute la cellule

    mais c'est justement le contraire qui est recherché
    le lien ne doit pas couvrir toute la cellule mais le td doit être entièrement clicable

    A+JYT

  16. #16
    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
    ?
    ben les deux solutions ont été exposées
    laissons le choisir celle qui convient à son besoin que nous n'avons pas tous su cerner précisément ... ?
    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 !

  17. #17
    Membre chevronné Avatar de nadox
    Homme Profil pro
    Développeur
    Inscrit en
    Février 2010
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 360
    Par défaut
    Bonjour,

    Je crois que contraire n'est pas recherché, mais seulement constaté...

  18. #18
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 098
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 098
    Par défaut
    L'inconvénient de mettre le lien en display: block avec une hauteur à 100%, c'est que le texte sera collé en haut de la cellule. On peut jouer avec padding-top, mais ça demande de connaître à l'avance la hauteur de la cellule, ce qui ajoute des contraintes de style, ou nécessite de passer par JavaScript.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  19. #19
    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
    on peut jouer avec le lineheight
    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 !

  20. #20
    Membre émérite

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 411
    Par défaut
    cf mon exemple plus haut dont je remet le lien http://jsfiddle.net/Chouchen/rFqkR/1/

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Python 2.X] Convertir une date directement depuis un élément d'une liste
    Par Taylor08 dans le forum Général Python
    Réponses: 15
    Dernier message: 23/03/2015, 14h30
  2. Réponses: 3
    Dernier message: 01/06/2014, 23h12
  3. Réponses: 0
    Dernier message: 09/06/2010, 10h08
  4. Réponses: 3
    Dernier message: 06/05/2010, 10h59
  5. Déclencher une fonction a partir d'un élément d'une liste
    Par la_praline dans le forum GTK+ avec C & C++
    Réponses: 3
    Dernier message: 27/04/2007, 10h36

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