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 :

[AJAX] Rendre grisés des liens hypertextes après un click


Sujet :

JavaScript

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 277
    Points : 93
    Points
    93
    Par défaut [AJAX] Rendre grisés des liens hypertextes après un click
    Bonjour à tous,

    Je ne sais pas si le sujet est vraiement explicite donc ... petite explication.

    Je prend l'exemple de deux liens qui lancent chacun une action ajax qui prend 5s à s'executer et renvoyer une réponse.
    Je souhaiterai que lors d'un click sur l'un de ces deux liens, ceci deviennent grisés (non clikable) dans le but de ne pas pouvoir lancer une deuxième action en même temps.


    Voyez vous comme faire ?


    Merci d'avance.

  2. #2
    Membre régulier Avatar de SpecialCharacter
    Inscrit en
    Mai 2007
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 73
    Points : 72
    Points
    72
    Par défaut
    Bonjour,

    Il suffit de, suivant l'evennement, modifier le style de l'objet validant:
    onClick : objet.disabled = true;
    xHR.readyState == 4 && xHR.status == 200 : objet.disabled = false;

    Je n'ai pas très bien compris si tu voulais rendre l'objet validant clickable une fois les informations bien récupérées, mais la deuxième ligne te le permet.

    (Même procédure pour des liens, en changeant leur URL)

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 277
    Points : 93
    Points
    93
    Par défaut
    Je vais peut être rentrer plus en détails. Voici les deux possibilités :

    => Arret
    => Démarrage

    Je voudrais que lorsque l'on clique sur Arret, les deux liens ne soient plus clickable.

    J'ai essayé avec ta fonction mais j'ai l'impression que ce paramètre ne passe que pour des boutons et non pour des liens comme dans mon cas.

    Je comptai executer le fonction de grisement lors de l'étape 1 de la requete et de rendre les liens de nouveaux dispo à l'étape 4, ce qui revient à ta facon de faire.

  4. #4
    Membre régulier Avatar de SpecialCharacter
    Inscrit en
    Mai 2007
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 73
    Points : 72
    Points
    72
    Par défaut
    Il te suffit d'éditer les propriétés des liens, avec l'url que je t'ai donné tu devrais trouver ton bonheur.
    Il faut identifier tes deux liens et les obtenir via document.getElementById("lien_x"); pour ensuite en modifier les attributs, libre à toi de choisir le type d'invalidation

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 277
    Points : 93
    Points
    93
    Par défaut
    Merci pour le lien.

    Dans l'idéal, se serait de transformer le lien en simple ligne de texte le temps de la durée de la requête. J'ai bien regardé dans les différents DOM qui sont dispo sur le site que tu m'as passé mais je n'ai rien trouvé permettant de faire ca facilement. Il y a peut être une bidouille à faire...

  6. #6
    Membre régulier Avatar de SpecialCharacter
    Inscrit en
    Mai 2007
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 73
    Points : 72
    Points
    72
    Par défaut
    Si tu ne veux pas te casser la tête tu peux:

    Créer un objet Array mes_liens,
    Créer un élément de cet array dont le nom serait l'id de ton <a> et y stocker l'url de ton <a>. exemple mes_liens["premier_lien"] = "http://exemple.com/fichier.txt";
    Puis: document.getElementById("premier_lien").href = '#';

    Et pour faire revenir à la normale (c'est à dire retrouver ton ancien lien), tu n'as plus qu'à modifier le href en retrouvant le lien dans le tableau mes_liens

    C'est une solution simple, je l'ai testé, si tu veux faire plus propre je te conseillerais de regarder vers removeChild() et appendChild()

    Bonne soirée

  7. #7
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 277
    Points : 93
    Points
    93
    Par défaut
    D'après ce que je vois, ceci va changer tout l'élément et pas seulement supprimer les balises <a></a>. J'ai d'ailleurs l'impression que ceci n'est pas possible autrement que par le remplacement de l'ensemble de l'élément.

  8. #8
    Membre régulier Avatar de SpecialCharacter
    Inscrit en
    Mai 2007
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 73
    Points : 72
    Points
    72
    Par défaut
    Dans la première technique tu peux modifier simplement la destination du href,
    Dans la seconde il s'agit de supprimer l'élément et de le remplacer par du texte.
    Dans les deux cas il faudra sauvegarder l'ancienne donnée.
    Soit, l'ancien href, soit l'ancienne node...

  9. #9
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 277
    Points : 93
    Points
    93
    Par défaut
    j'ai étudié les deux solutions et aucune n'ai vraiment pratique due, comme tu l'as dis, à l'enregistrement des anciennes valeurs.
    Je contourne un peu le problème en changeant ces liens en boutton qui sont eux paramétrable en disabled.
    Je continu pour l'instant dans cette direction.

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/05/2007, 15h34
  2. importer des liens hypertextes depuis excel
    Par maywen dans le forum Access
    Réponses: 1
    Dernier message: 30/03/2007, 22h52
  3. [regex] Récupérer des liens hypertextes
    Par smarties dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 15/02/2007, 19h12
  4. Utilisation des Liens hypertextes
    Par lolo_bob2 dans le forum Access
    Réponses: 3
    Dernier message: 26/04/2006, 14h10
  5. Aspect des liens hypertextes
    Par flzox dans le forum Mise en forme
    Réponses: 5
    Dernier message: 04/09/2004, 15h29

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