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 :

Déplacer des éléments différents d'une liste


Sujet :

jQuery

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    378
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 378
    Points : 94
    Points
    94
    Par défaut Déplacer des éléments différents d'une liste
    Bonjour,

    J'ai une liste
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    <ul id="contenu">
        <li class="msgOK" id="t91" style="display: none;">
              <div class="general pull-left margin-top-12">
                <span class="author">5XXXX</span>
                <span class="textMsg">voici</span>
                <span class="time" data-time="2014-05-31 23:10:41">il y a 10 heures</span>
                <div style="clear: both;"></div>
            </div>
        </li>
       <li class="divers" id="a10" style="display: none;">
            <div class="general pull-left margin-top-12">
                message particulier
            </div>
        </li>
        <li class="msgOK" id="t90" style="display: none;">
            <div class="general pull-left margin-top-12">
                <span class="author">5XXXX</span>
                <span class="textMsg">voici</span>
                <span class="time" data-time="2014-05-31 23:09:48">il y a 10 heures</span>
                <div style="clear: both;"></div>
            </div>
        </li>
      <li class="divers" id="a9" style="">
            <div class="general pull-left margin-top-12">
                message particulier
            </div>
        </li>
        <li class="msgOK" id="t89" style="">
            <div class="general pull-left margin-top-12">
                <span class="author">5XXXX</span>
                <span class="textMsg">voici</span>
                <span class="time" data-time="2014-05-31 23:09:03">il y a 10 heures</span>
                <div style="clear: both;"></div>
            </div>
        </li>
        <li class="msgOK" id="t88" style="">
            <div class="general pull-left margin-top-12">
                <span class="author">5XXXX</span>
                <span class="textMsg">voici</span>
                <span class="time" data-time="2014-05-31 23:08:01">il y a 10 heures</span>
                <div style="clear: both;"></div>
            </div>
        </li>
    </ul>

    le conteneur UL : id = conteneur
    ensuite pour les lignes LI
    - il y a deux types :
    1 / class="msgOK" id="t" + identifiant chrono
    2 / class="divers" id="a" + identifiant chrono

    en plus chacun des li peut avoir un style qui permet d'afficher ou masquer la ligne

    L'objectif :
    Quand une ligne de class msgOk apparaît/disparait, je dois déplacer et faire apparaitre/disparaitre le bloc class divers.

    L'objectif est tous les X messages de class msgok, faire apparaitre un bloc divers.
    mais les blocs msgok peuvent apparaitre / disparaitre dans un ordre aléatoire, il faut donc repositionner les bloc divers.

    Merci

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    378
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 378
    Points : 94
    Points
    94
    Par défaut
    voici le code actuel qui ne fonctionne pas parfaitement.

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    <html>
    <head></head>
    <body>
    </body>
    <ul id="maliste">
    <li class="msg" id="t10">10</li>
    <li class="msg" id="t9" style="display: none;">9</li>
    <li class="msg" id="t8">8</li>
    <li class="msg" id="t7">7</li>
    <li class="msg" id="t6">6</li>
    <li class="msg" id="t5">5</li>
    <li class="msg" id="t4" style="display: none;">4</li>
    <li class="msg" id="t3">3</li>
    <li class="msg" id="t2">2</li>
    <li class="msg" id="t1">1</li>
    <li class="mad" id="ma4" style="">canvasd4</li>
    <li class="mad" id="ma3" style="">canvasd3</li>
    <li class="mad" id="ma2" style="">canvasd2</li>
    <li class="mad" id="ma1" style="">canvasd1</li>
    </ul>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script type="text/javascript" >
      var mad = 3;
      var k = 0;
      $("#maliste").children("li.msg:visible").each(function (i, item){
      var j = i % 2;
      if(i > 0 && j ==0 && mad >= 0) {
           z = i+k;
           $("#maliste li.mad:eq("+mad+")").insertAfter($("#maliste li:eq("+z+")"));
           k = k + 1;
      }
     
    })
     
    </script>
    </html>
    au départ l'affichage est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    10
    8
    7
    6
    5
    3
    2
    1
    canvasd4
    canvasd3
    canvasd2
    canvasd1
    Après chargement le résultat est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    10
    canvasd1
    8
    7
    canvasd2
    6
    5
    canvasd3
    3
    2
    1
    canvasd4
    Si on enlève le code style display none

    le résultat est correct :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    10
    9
    canvasd1
    8
    7
    canvasd2
    6
    5
    canvasd3
    4
    3
    canvasd4
    2
    1
    donc cela concerne un problème de comptabilisation avec visible / hidden

    merci

Discussions similaires

  1. [XL-2010] Compter des éléments différents dans une même liste
    Par will-1981 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 24/10/2014, 16h40
  2. Récupération des éléments sélectionner dans une liste
    Par Jasmine80 dans le forum Interfaces Graphiques
    Réponses: 13
    Dernier message: 17/09/2009, 12h52
  3. [AC-2003] Etat à partir des éléments selectionnés d'une liste
    Par -ULK- dans le forum IHM
    Réponses: 8
    Dernier message: 17/06/2009, 10h42
  4. [script.aculo.us] [Tutoriel] Modifier l'opacité des éléments sélectionnés d'une liste avec Script.aculo.us
    Par Kerod dans le forum Bibliothèques & Frameworks
    Réponses: 0
    Dernier message: 13/01/2009, 21h31
  5. Trouver éléments différents d'une liste
    Par Mimiche dans le forum Langage
    Réponses: 2
    Dernier message: 29/11/2007, 13h00

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