Ma première fonction

Résolu
leejunfan Messages postés 45 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 7 août 2008 - 25 avril 2008 à 23:18
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 - 27 avril 2008 à 17:15
Je tente d'ecrire une fonction pour gérer le background de liens dans un menu dynamique

Je suis carrément novice et évidement, ca ne marche pas :os

Je la reproduit ici en essayant de simplifier au maximum (le but est de changer le bg de lien a en survolant lien b)

html :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans nom</title>
<link href="liens.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="liens.js"></script>
</head>



[# lien a]

[# lien b]

</html>

css :

a:hover {background-color:red;}
.noir a:hover {background-color:black;}

javascript :

function lien(){
getElementById('liena').className='noir';
}

Si vous m'aidez a dépatouiller ca, je serais bienheureux ;o)

41 réponses

leejunfan Messages postés 45 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 7 août 2008
26 avril 2008 à 16:43
En fait dans l'idéal je voudrais effectivement appeler une classe plutôt que de gérer le background dans le javascript.
Je m'absente, merci mille fois pour votre aide.
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
26 avril 2008 à 16:45
Bon, je viens de revenir, c'est dommage, je n'étais pas loin de la solution, ce n'était qu'une question de syntaxe, j'ai essaye : background-color, bgcolor mais pas backgroundColor !!!

Si tout bon ba c'est bien si tout fonctionne !!!

a++

Si t'a besoin d'aide, MP !!!
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
26 avril 2008 à 16:52
salut Nico...
    on s'est tous fait avoir avec ça !   après on sait.
    au m'avait dit à mes debuts les machins dans style, de la forme "axx-byy"
       sont à remplacer en javascript par "axxByy", c'est à dire supprimer
       le moins et mettre en majuscule le caractère suivant.
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
26 avril 2008 à 17:03
Oui, c'est bon a savoir, c'est pour ça aussi que dans les fonction par exemple javascript, c'est bien de respecter un règle d'écriture et de nomage strict !!!

Au moins la prochaine fois je saurai quoi faire !!!

Je crois qu'a partir de maintenant je vais être plus actif sur javascriptfr car il paraitrait que je ne sois plus le bienvenue sur phpcs (il faut que je revienne dans quelque année quand j'aurai les bases et de l'expérience en php a ce qu'il parait ) !!!

Citation de maelob : Je me coucherai moins bête ce soir !!!

PS : j'ai respecter le copyright, lol !!!

Si t'a besoin d'aide, MP !!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
leejunfan Messages postés 45 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 7 août 2008
26 avril 2008 à 19:07
Bon j'avance, j'ai une solution en passant par les class css, je vous la poste :

html :


[# lien a]

[# lien b]

<script>
    var l=document.getElementById("lien1");
    function sur()
    {    l.className="class1";    }
 function par()
    {    l.className="class2";    }
</script>


css :


a:hover {background-color:red;}
.class1  {background-color:red;}
.class2  {background-color:none;}
0
leejunfan Messages postés 45 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 7 août 2008
26 avril 2008 à 21:26
Il me reste a extraire le javascript de la page et pour l'instant je sèche (objet attendu sur l'id lien1)


Ha les autodidactes :o)
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
27 avril 2008 à 11:14
nico :
>>car il paraitrait que je ne sois plus le bienvenue sur phpcs
    meuh.... et qui t'as dit cela nico ?
    à mon humble avis, toutes les bonnes volontés sont
       les bienvenues, même si je puis te glisser de tester
       avant de poster une réponse ( c'est ce que je fais
       généralement ! )

leejunfan:
qu'est-ce que tu fais là ?   ou que veux-tu faire ?
    les mêmes fonctions sont appelées sur les 2 liens,
        mais on ne s'y adressent qu'à lien1 ????

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
27 avril 2008 à 11:25
>>    meuh.... et qui t'as dit cela nico ? à mon humble avis, toutes les bonnes volontés sont les bienvenues, même si je puis te glisser de tester avant de poster une réponse ( c'est ce que je fais généralement ! )
      Personne laisse tomber, on m'a dit de rester a l'écart et de revenir dans quelque années, j'ai répondu que j'étais peut être jeune mais que ça ne faisait pas de moi un ignorant et on m'a répondu que ce n'était pas la jeunesse le problème mais l'expérience, et qu'il faut avoir des années d'expérience que visiblement je n'ai pas !!! Avant hier par exemple je postait une réponse et a chaque fois la même personne disait qu'il ne fallai pas faire attention a moi ... la même personne m'a dit que si je ne savais pas quoi répondre il valait mieux que je ne réponde pas, ce que j'ai fais, je lui ai dit que je lui laissais le post et tout ce qu'il a trouvé de mieux a faire c'est de me dire que de toute façon j'aurai eu du mal a epliquer même les bases de php, je lui est dis pas forcement et que je connaissait certaines choses quand même et il m'a dit c'est n'ai pas parce qu'on connait tout les mot du dictionnaire que l'on parle bien le français ...
      Je vais suivre ton conseil pour ce qui est de tester avant de poster !!!

a++

Si t'a besoin d'aide, MP !!!
0
leejunfan Messages postés 45 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 7 août 2008
27 avril 2008 à 11:30
En tous cas nico, une gentillesse comme la tienne est appréciable sur un forum ;o)

Bultez, oui c'est un oubli cette fonction appelé aussi sur lien 1, elle date de la solution précédente car elle solutionnait le problème de background attribué qui prenait le pas sur le css
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
27 avril 2008 à 11:42
Merci leejunfan, mais la gentillesse n'es pas le problème, sur le forum php ce n'es pas la gentillesse qui compte mais l'expérience (et il parait que je suis pire qu'un débutant au niveau de l'expérience...)

Sinon, si tu veus, je peus t'aider a séparer ton code js de ta page html comme je l'ai fais sur ma source...

Si t'a besoin d'aide, MP !!!
0
leejunfan Messages postés 45 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 7 août 2008
27 avril 2008 à 11:45
Ce serait volontiers nico, je ne comprends pas pourquoi lorsque je sépare le script il est en erreur "objet attendu" sur lien 1, pourtant j'apelle la fonction après avoir déclaré l'id
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
27 avril 2008 à 11:50
C'est peut être parce que le DOM n'est pas encore chargé, tu as firefox ? si oui, regarde la console d'erreur et met nous ce qu'elle contient !!

Si t'a besoin d'aide, MP !!!
0
leejunfan Messages postés 45 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 7 août 2008
27 avril 2008 à 11:57
Mais si le DOM n'est pas chargé pourquoi le code marche lorsqu'il est dans la page ?
Je dois filer, je mets le message d'erreur firefox a mon retour ;o)
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
27 avril 2008 à 12:00
ok

a++

Si t'a besoin d'aide, MP !!!
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
27 avril 2008 à 12:12
>>

C'est peut être parce que le DOM n'est pas encore chargé
    ça ne veut rien dire ça nico....
    le dom se crée au fur et à mesure.....( ça ne veut rien dire non plus, mais bon... )

    document.getElementById("toto").... ici en erreur
   
    document.getElementById("toto").... ici c'est bon.

  

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
27 avril 2008 à 12:20
Je me souviens que j'avais eu un pb comme ça et juki_wrbmaster m'avait dit que le DOM n'était  pas encore chargé et qu'il fallait que je fasse une fonction pour appellé l'autre fonction une fois que le dom était chargé en l'occurence le document !!

Si t'a besoin d'aide, MP !!!
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
27 avril 2008 à 12:28
o c'est mal passé, juki_webmaster, excusez moi, lol

Si t'a besoin d'aide, MP !!!
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
27 avril 2008 à 12:32
>>...le DOM n'était  pas encore chargé....
    le DOM ne se charge pas....
    il "se construit" au fur et à mesure de l'interprétation des
        lignes de la page par le navigateur.
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
27 avril 2008 à 12:34
je pense que c'est ce que voulais dire juki_webmaster !!

++

Si t'a besoin d'aide, MP !!!
0
leejunfan Messages postés 45 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 7 août 2008
27 avril 2008 à 17:12
Encore une fois Bultez a trouvé la solution.
Cela clochait car je déclarais ma variable l=document.getElementById("lien1"); en préambule des fonctions, alors que l'id n'était pas encore déclaré.

Donc je fait un getElementById a l'intérieur de la fonction que j'apelle après l'id et ca marche.

Voila ce que ca donne :

lien.html :

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="liens.css" rel="stylesheet" type="text/css" />
<title>Document sans nom</title>
<script type="text/javascript" src="liens.js"></script>
</head>




[# lien a]

[# lien b]



</html>

liens.css :

a:hover {background-color:red;}
.class1  {background-color:red;}
.class2  {background-color:none;}

liens.js :

function sur()
    {    document.getElementById("lien1").className="class1";    }
 function par()
    {    document.getElementById("lien1").className="class2";    }

Conclusion : grâce a vous je suis parré pour le boulot demain, un grand merci ;o)
0
Rejoignez-nous