validation XHML et javascript

Bonsoir

un problème non spip mais vous êtes si bons …

Dans ma page d’accueil j’ai inclus un fichier

Ainsi avec le javascript

$(document).ready( function()
{
// Lorsqu’un lien a.tab est cliqué
$(« a.tab »).click( function ()
{
// Mettre tous les onglets non actifs
$(".active").removeClass(« active »);

// Mettre l’onglet cliqué actif
$(this).addClass(« active »);

// Cacher les boîtes de contenu
$(".content").slideUp();

// Pour afficher la boîte de contenu associé, nous
// avons modifié le titre du lien par le nom de
// l’identifiant de la boite de contenu
var contenu_aff = $(this).attr(« name »);
$("#" + contenu_aff).slideDown();
}
);
}
);

j’obtiens l’effet visible sur cette page (y’a 3 onglets mais c’est le même principe)

Mon problème est que j’ai des avertissements XHTML
line 577 column 3 - Avertissement:

anchor « contenu_1 » already defined

Normal … mais comment l’éviter ?

bonsoir JC,
j’ai cru comprendre (pas sûr à 100%) qu’en XHTML name="" et id="" c’est équivalent au regard de la validation
et en bidouillant le javascript ?
var contenu_aff = $(this).attr(« name »);
en
var contenu_aff = $(this).attr(« class »);
puis

  • Les derniers articles ...
  • c’est au pif !
    cordialement

    Jean-Christophe Villeneuve a écrit :

    Le 09/01/2010 23:39, bobof a écrit :

    bonsoir JC,
    j'ai cru comprendre (pas sûr à 100%) qu'en XHTML name="" et id="" c'est équivalent au regard de la validation
    et en bidouillant le javascript ?
       var contenu_aff = $(this).attr("name");
    en
       var contenu_aff = $(this).attr("class");
    puis
    <li><a href="#" name="" class="tab active contenu_1">Les derniers articles ...</a></li>

    c'est au pif !
    cordialement

    Juste peut être
    $("." + contenu_aff).slideDown(); avec des div class contenu_(1|2)

    Comme ca tu peut même avoir a href="#" name="contenu_1" id="contenu_1"

    C'est bobof qu'a tout fait , j'ai juste suivi :slight_smile:

    Shnoulle / Denis a écrit :

    Le 09/01/2010 23:39, bobof a écrit :

    bonsoir JC,
    j'ai cru comprendre (pas sûr à 100%) qu'en XHTML name="" et id="" c'est équivalent au regard de la validation
    et en bidouillant le javascript ?
       var contenu_aff = $(this).attr("name");
    en
       var contenu_aff = $(this).attr("class");
    puis
    <li><a href="#" name="" class="tab active contenu_1">Les derniers articles ...</a></li>

    c'est au pif !
    cordialement

    Juste peut être
    $("." + contenu_aff).slideDown(); avec des div class contenu_(1|2)

    Comme ca tu peut même avoir a href="#" name="contenu_1" id="contenu_1"

    C'est bobof qu'a tout fait , j'ai juste suivi :slight_smile:

    je n'ai plus d'erreur mais je perd l'affichage des contenus après un clic sur un onglet

    ou oui j’avais bien compris que name et id revenaient au même.
    mais je n’arrive pas à bidouiller comme il faut
    en remplaçant name par class et en changeant les class des li comme tu le proposes, j’obtiens une page valide mais si les blocs se ferment au clic, le bloc cliqué ne se déroule pas.
    bref je n’y arrrive pas

    bobof a écrit :

    bonsoir JC,
    j’ai cru comprendre (pas sûr à 100%) qu’en XHTML name=«  » et id=«  » c’est équivalent au regard de la validation
    et en bidouillant le javascript ?
    var contenu_aff = $(this).attr(« name »);
    en
    var contenu_aff = $(this).attr(« class »);
    puis

  • Les derniers articles ...
  • c’est au pif !
    cordialement

    Jean-Christophe Villeneuve a écrit :

    Bonsoir

    un problème non spip mais vous êtes si bons …

    Dans ma page d’accueil j’ai inclus un fichier

    Ainsi avec le javascript

    $(document).ready( function()
    {
    // Lorsqu’un lien a.tab est cliqué
    $(« a.tab »).click( function ()
    {
    // Mettre tous les onglets non actifs
    $(« .active »).removeClass(« active »);

    // Mettre l’onglet cliqué actif
    $(this).addClass(« active »);

    // Cacher les boîtes de contenu
    $(« .content »).slideUp();

    // Pour afficher la boîte de contenu associé, nous
    // avons modifié le titre du lien par le nom de
    // l’identifiant de la boite de contenu
    var contenu_aff = $(this).attr(« name »);
    $(« # » + contenu_aff).slideDown();
    }
    );
    }
    );

    j’obtiens l’effet visible sur cette page (y’a 3 onglets mais c’est le même principe)

    Mon problème est que j’ai des avertissements XHTML
    line 577 column 3 - Avertissement:

    anchor « contenu_1 » already defined

    Normal … mais comment l’éviter ?

    
    ---
    
    

    Un truc dans ce genre:
    <ul class="onglets">
        <li><a href="#" name="contenu_1" class="tab active">Les derniers
    articles ...</a></li>
        <li><a href="#" name="contenu_2" class="tab">... et les autres</a></li>
      </ul>

      <div class="contenu_1 content">
        <INCLURE {fond=inclusions/inc-une_derniers}>
      </div>

      <div class="contenu_2 content">
        <INCLURE {fond=inclusions/inc-plan}>
      </div>

        $(document).ready( function()
                            {
                                // Lorsqu'un lien a.tab est cliqué
                                $("a.tab").click( function ()
                                                    {
                                                        // Mettre tous les
    onglets non actifs

    $(".active").removeClass("active");

                                                        // Mettre l'onglet
    cliqué actif
                                                        $(this).addClass("active");

                                                        // Cacher les
    boîtes de contenu
                                                        $(".content").slideUp();

                                                        // Pour afficher
    la boîte de contenu associé, nous
                                                        // avons modifié
    le titre du lien par le nom de
                                                        // l'identifiant
    de la boite de contenu
                                                        var contenu_aff =
    $(this).attr("name");
                                                        $("." +
    contenu_aff).slideDown();
                                                    }
                                                  );
                            }
                        );

    Ca passe ?

    Le 10 janvier 2010 21:48, Jean-Christophe Villeneuve
    <jcvilleneuve@cegetel.net> a écrit :

    ou oui j'avais bien compris que name et id revenaient au même.
    mais je n'arrive pas à bidouiller comme il faut
    en remplaçant name par class et en changeant les class des li comme tu le
    proposes, j'obtiens une page valide mais si les blocs se ferment au clic, le
    bloc cliqué ne se déroule pas.
    bref je n'y arrrive pas

    bobof a écrit :

    bonsoir JC,
    j'ai cru comprendre (pas sûr à 100%) qu'en XHTML name="" et id="" c'est
    équivalent au regard de la validation
    et en bidouillant le javascript ?
    var contenu_aff = $(this).attr("name");
    en
    var contenu_aff = $(this).attr("class");
    puis
    <li><a href="#" name="" class="tab active contenu_1">Les derniers articles
    ...</a></li>

    c'est au pif !
    cordialement

    Jean-Christophe Villeneuve a écrit :

    Bonsoir

    un problème non spip mais vous êtes si bons ...

    Dans ma page d'accueil j'ai inclus un fichier

    <ul class="onglets">
    <li><a href="#" name="contenu_1" class="tab active">Les derniers
    articles ...</a></li>
    <li><a href="#" name="contenu_2" class="tab">... et les autres</a></li>
    </ul>

    <div id="contenu_1" class="content">
    <INCLURE {fond=inclusions/inc-une_derniers}>
    </div>

    <div id="contenu_2" class="content">
    <INCLURE {fond=inclusions/inc-plan}>
    </div>

    Ainsi avec le javascript

    $\(document\)\.ready\(  function\(\)
                        \{
                            // Lorsqu&#39;un lien a\.tab est cliqué
                            $\(&quot;a\.tab&quot;\)\.click\(   function \(\)
                                                \{
                                                    // Mettre tous les
    

    onglets non actifs

    $(".active").removeClass("active");

                                                    // Mettre l&#39;onglet
    

    cliqué actif

    $(this).addClass("active");

                                                    // Cacher les boîtes de
    

    contenu
    $(".content").slideUp();

                                                    // Pour afficher la
    

    boîte de contenu associé, nous
    // avons modifié le
    titre du lien par le nom de
    // l'identifiant de la
    boite de contenu
    var contenu_aff =
    $(this).attr("name");
    $("#" +
    contenu_aff).slideDown();
    }
    );
    }
    );

    j'obtiens l'effet visible sur cette page (y'a 3 onglets mais c'est le même
    principe)

    Mon problème est que j'ai des avertissements XHTML
    line 577 column 3 - Avertissement: <div> anchor "contenu_1" already defined

    Normal ... mais comment l'éviter ?

    ________________________________

    _______________________________________________
    liste spip
    spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

    Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
    Discuter chez rezo.net

    Documentation de SPIP : http://www.spip.net/

    Irc : de l'aide à toute heure : http://spip.net/irc

    Un truc dans ce genre:
    <ul class="onglets">
       <li><a href="#" name="contenu_1" class="tab active">Les derniers
    articles ...</a></li>
       <li><a href="#" name="contenu_2" class="tab">... et les autres</a></li>
    </ul>

    <div class="contenu_1 content">
       <INCLURE {fond=inclusions/inc-une_derniers}>
    </div>

    <div class="contenu_2 content">
       <INCLURE {fond=inclusions/inc-plan}>
    </div>

       $(document).ready( function()
                           {
                               // Lorsqu'un lien a.tab est cliqué
                               $("a.tab").click( function ()
                                                   {
                                                       // Mettre tous les
    onglets non actifs

    $(".active").removeClass("active");

                                                       // Mettre l'onglet
    cliqué actif
                                                       $(this).addClass("active");

                                                       // Cacher les
    boîtes de contenu
                                                       $(".content").slideUp();

                                                       // Pour afficher
    la boîte de contenu associé, nous
                                                       // avons modifié
    le titre du lien par le nom de
                                                       // l'identifiant
    de la boite de contenu
                                                       var contenu_aff =
    $(this).attr("name");
                                                       $("." +
    contenu_aff).slideDown();
                                                   }
                                                 );
                           }
                       );

    Ca passe ?

    Le 10 janvier 2010 21:48, Jean-Christophe Villeneuve
    <jcvilleneuve@cegetel.net> a écrit :

    ou oui j'avais bien compris que name et id revenaient au même.
    mais je n'arrive pas à bidouiller comme il faut
    en remplaçant name par class et en changeant les class des li comme tu le
    proposes, j'obtiens une page valide mais si les blocs se ferment au clic, le
    bloc cliqué ne se déroule pas.
    bref je n'y arrrive pas

    bobof a écrit :

    bonsoir JC,
    j'ai cru comprendre (pas sûr à 100%) qu'en XHTML name="" et id="" c'est
    équivalent au regard de la validation
    et en bidouillant le javascript ?
    var contenu_aff = $(this).attr("name");
    en
    var contenu_aff = $(this).attr("class");
    puis
    <li><a href="#" name="" class="tab active contenu_1">Les derniers articles
    ...</a></li>

    c'est au pif !
    cordialement

    Jean-Christophe Villeneuve a écrit :

    Bonsoir

    un problème non spip mais vous êtes si bons ...

    Dans ma page d'accueil j'ai inclus un fichier

    <ul class="onglets">
    <li><a href="#" name="contenu_1" class="tab active">Les derniers
    articles ...</a></li>
    <li><a href="#" name="contenu_2" class="tab">... et les autres</a></li>
    </ul>

    <div id="contenu_1" class="content">
    <INCLURE {fond=inclusions/inc-une_derniers}>
    </div>

    <div id="contenu_2" class="content">
    <INCLURE {fond=inclusions/inc-plan}>
    </div>

    Ainsi avec le javascript

    $\(document\)\.ready\(  function\(\)
                        \{
                            // Lorsqu&#39;un lien a\.tab est cliqué
                            $\(&quot;a\.tab&quot;\)\.click\(   function \(\)
                                                \{
                                                    // Mettre tous les
    

    onglets non actifs

    $(".active").removeClass("active");

                                                    // Mettre l&#39;onglet
    

    cliqué actif

    $(this).addClass("active");

                                                    // Cacher les boîtes de
    

    contenu
    $(".content").slideUp();

                                                    // Pour afficher la
    

    boîte de contenu associé, nous
    // avons modifié le
    titre du lien par le nom de
    // l'identifiant de la
    boite de contenu
    var contenu_aff =
    $(this).attr("name");
    $("#" +
    contenu_aff).slideDown();
    }
    );
    }
    );

    j'obtiens l'effet visible sur cette page (y'a 3 onglets mais c'est le même
    principe)

    Mon problème est que j'ai des avertissements XHTML
    line 577 column 3 - Avertissement: <div> anchor "contenu_1" already defined

    Normal ... mais comment l'éviter ?

    ________________________________

    _______________________________________________
    liste spip
    spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

    Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
    Discuter chez rezo.net

    Documentation de SPIP : http://www.spip.net/

    Irc : de l'aide à toute heure : http://spip.net/irc

    Bingo !
    ça marche au poil, et plus d'avertissement W3C
    Un grand merci, Denis et Bobof !

    Denis Chenu a écrit :

    Un truc dans ce genre:
    <ul class="onglets">
       <li><a href="#" name="contenu_1" class="tab active">Les derniers
    articles ...</a></li>
       <li><a href="#" name="contenu_2" class="tab">... et les autres</a></li>
    </ul>

    <div class="contenu_1 content">
       <INCLURE {fond=inclusions/inc-une_derniers}>
    </div>

    <div class="contenu_2 content">
       <INCLURE {fond=inclusions/inc-plan}>
    </div>

       $(document).ready( function()
                           {
                               // Lorsqu'un lien a.tab est cliqué
                               $("a.tab").click( function ()
                                                   {
                                                       // Mettre tous les
    onglets non actifs

    $(".active").removeClass("active");

                                                       // Mettre l'onglet
    cliqué actif
                                                       $(this).addClass("active");

                                                       // Cacher les
    boîtes de contenu
                                                       $(".content").slideUp();

                                                       // Pour afficher
    la boîte de contenu associé, nous
                                                       // avons modifié
    le titre du lien par le nom de
                                                       // l'identifiant
    de la boite de contenu
                                                       var contenu_aff =
    $(this).attr("name");
                                                       $("." +
    contenu_aff).slideDown();
                                                   }
                                                 );
                           }
                       );

    Ca passe ?

    Le 10 janvier 2010 21:48, Jean-Christophe Villeneuve
    <jcvilleneuve@cegetel.net> a écrit :
      

    ou oui j'avais bien compris que name et id revenaient au même.
    mais je n'arrive pas à bidouiller comme il faut
    en remplaçant name par class et en changeant les class des li comme tu le
    proposes, j'obtiens une page valide mais si les blocs se ferment au clic, le
    bloc cliqué ne se déroule pas.
    bref je n'y arrrive pas

    bobof a écrit :

    bonsoir JC,
    j'ai cru comprendre (pas sûr à 100%) qu'en XHTML name="" et id="" c'est
    équivalent au regard de la validation
    et en bidouillant le javascript ?
       var contenu_aff = $(this).attr("name");
    en
       var contenu_aff = $(this).attr("class");
    puis
    <li><a href="#" name="" class="tab active contenu_1">Les derniers articles
    ...</a></li>

    c'est au pif !
    cordialement

    Jean-Christophe Villeneuve a écrit :

    Bonsoir

    un problème non spip mais vous êtes si bons ...

    Dans ma page d'accueil j'ai inclus un fichier

      <ul class="onglets">
        <li><a href="#" name="contenu_1" class="tab active">Les derniers
    articles ...</a></li>
        <li><a href="#" name="contenu_2" class="tab">... et les autres</a></li>
      </ul>

      <div id="contenu_1" class="content">
        <INCLURE {fond=inclusions/inc-une_derniers}>
      </div>

      <div id="contenu_2" class="content">
        <INCLURE {fond=inclusions/inc-plan}>
      </div>

    Ainsi avec le javascript

        $(document).ready( function()
                            {
                                // Lorsqu'un lien a.tab est cliqué
                                $("a.tab").click( function ()
                                                    {
                                                        // Mettre tous les
    onglets non actifs

    $(".active").removeClass("active");

                                                        // Mettre l'onglet
    cliqué actif

    $(this).addClass("active");

                                                        // Cacher les boîtes de
    contenu
                                                        $(".content").slideUp();

                                                        // Pour afficher la
    boîte de contenu associé, nous
                                                        // avons modifié le
    titre du lien par le nom de
                                                        // l'identifiant de la
    boite de contenu
                                                        var contenu_aff =
    $(this).attr("name");
                                                        $("#" +
    contenu_aff).slideDown();
                                                    }
                                                  );
                            }
                        );

    j'obtiens l'effet visible sur cette page (y'a 3 onglets mais c'est le même
    principe)

    Mon problème est que j'ai des avertissements XHTML
    line 577 column 3 - Avertissement: <div> anchor "contenu_1" already defined

    Normal ... mais comment l'éviter ?

    ________________________________