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 :

Onclick : vide le contenu précédent de la div cible & garde le contenu de la div clik


Sujet :

JavaScript

  1. #1
    Membre régulier
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    8
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 8
    Par défaut Onclick : vide le contenu précédent de la div cible & garde le contenu de la div clik
    Bonjour à tous,

    J'ai une question à poser :
    comment faire pour que le contenu de ce qui est cliqué (qui déclenche un onclick) reste apparent même une fois cliqué ?

    Et en fait aussi une deuxième :
    comment faire pour que ma div Contenu où s'affiche le résultat des onclick soit vidée du contenu appelé par les onclick précédents à chaque nouveau click ?

    Voici mon code en espérant que celà soit plus compréhensible :

    HTML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <div id="Article"><ul>
     
    		<li><div id="div1" style="display:none;">
    			<a href="#" onclick="visibilite(this, 4); return false;">ZaïZaïZaïZaï</a>  
    			<a href="#" onclick="visibilite(this, 5); return false;">bebopaloula</a>
    			<a href="#" onclick="visibilite(this, 6); return false;">chopichopa</a></div></li>
    Ma fonction visibilite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <script type="text/javascript">
    function visibilite(obj, thingId)
    {
        var targetElement;
        targetElement = $("div"+thingId);
        if (targetElement.style.display == "none")
        {
            targetElement.style.display = "";
            obj.innerHTML = '';
        } else {
            targetElement.style.display = "none";
            obj.innerHTML = '';
        }
    }
    </script>
    Et ma div contenu où est balancé le contenu appelé via onclick :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <div id="Contenu">Contenu des articles ICI	
    	<div id="div4" style="display:none;">
    	Lalalilalou
    	</div>
     
    	<div id="div5" style="display:none;">
    	Choubidouwhoua
    	</div>
     
    <div id="div6" style="display:none;">
    	Te quiero mas 
    	</div>

    Par exemple :

    1ère question)
    en cliquant sur "ZaïZaïZaïZaï" cela laisse "ZaïZaïZaïZaï" affiché là où il est (dans la div Articles) tout en balancant "Lalalilalou" dans la div contenu.

    2ème question)
    en cliquant sur "bebopaloula" cela efface "Lalalilalou" de la div Contenu pour y mettre "Te quiero mas"

    Ca ne doit pas être bien dur mais étant débutant malgré je ne vois pas Merci à ceux qui se pencheront sur la chose !

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Salut,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function visibilite(obj, thingId)
    {
        var targetElement;
    //    targetElement = $("#div"+thingId); Si tu utilise jQuery
     targetElement=document.getElementById('div'+thingid);
        if (targetElement.style.display == "none")
        {
            targetElement.style.display = "block";
            obj.innerHTML = '';
        } else {
            targetElement.style.display = "none";
            obj.innerHTML = '';
        }
    }

  3. #3
    Membre régulier
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    8
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 8
    Par défaut
    salut andry,
    Je viens d'essayer ton bout de code donc en mettant block mais cela ne marche toujours pas... le site est disponible ici pour y voir concrètement le rendu.

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Essaye avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function visibilite(obj, thingId)
    {
       if ($('div'+thingId).style.display == "none")
       {
           $('div'+thingId).style.display = "block";
           obj.innerHTML = '';
       } else {
           $('div'+thingId).style.display = "none";
           obj.innerHTML = '';
       }
    }

  5. #5
    Membre régulier
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    8
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 8
    Par défaut
    j'ai réessayé avec ce code est le soucis est toujours le même :
    le texte du block clické disparait lors du click
    et le contenu s'ajoute au précédent sans effacer l'ancien...

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Avec
    obj.innerHTML = '';
    tu effaces la contenue du bloc cliqué car tu mets this en paramètre lors de l'appel de la fonction
    <a href="#" onclick="visibilite(this, 4); return false;">ZaïZaïZaïZaï</a>
    tu dois mettre en paramètre le div que tu veux effacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="#" onclick="visibilite(document.getElementById('IdDiv'), 4); return false;">ZaïZaïZaïZaï</a>
    Quelle framework tu utilise avec le $('div'+thingId)?

  7. #7
    Membre régulier
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    8
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 8
    Par défaut
    J'utilise prototype en framework... je crois voir comment gérer le problème du coup. Merci pour ta réponse j'essai de tester avec d'autres paramètres et je te tiens au courant de comment ca avance merci !

  8. #8
    Membre régulier
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    8
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 8
    Par défaut
    re !

    Alors après tests j'ai pu régler le problème n°1 : en mettant '' a la place de this :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="#" onclick="visibilite('', 4); return false;">ZaïZaïZaïZaï</a>
    ZaïZaïZaïZaï ne s'efface pas c'est déjà un bon point !

    Par contre pour le 2ème problème donc en remplaçant le document.getElementById direct par $('divId') comme me le permet prototype cela efface bien la div que je veux mais en l'occurrence la div à effacer est la div Contenu où sont placées également toutes les autres div à activer via onclick !

    Du coup en lançant le onclick j'efface toutes mes autres div si je spécifie la div Contenu à la place de this.

    Ma dernière question
    : comment faire pour que les autres div qui sont dans la div Contenu ne soient pas effacées mais seulement que ce qui était visible devienne masqué par click sur un autre onclick ?
    Merci pour la peine déjà donnée à ma cause je t'en remercie andry !

Discussions similaires

  1. [DIV] Scroll si dépassement de contenu
    Par webrider dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/03/2007, 09h34
  2. Grandeur de boite/div qui s'ajuste au contenu
    Par nikicaillou dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 05/01/2007, 17h31
  3. [HTML/CSS] Taille d'un <div> en fonction de son contenu
    Par hedgehog dans le forum Mise en page CSS
    Réponses: 12
    Dernier message: 14/12/2006, 18h57
  4. [DIV] [FireFox] Problème affichage du contenu dans un div
    Par jibouze dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 24/11/2005, 11h06

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