Class.Name Javascript sur liste dynamique?
17 messages
• Page 1 sur 2 • 1, 2
-

tryan - WRInaute passionné

- Messages: 2355
- Inscription: 20 Fév 2005
Class.Name Javascript sur liste dynamique?
Bonjour,
Je bute sur un menu à onglet dynamique et notamment dans sur la fonction Javascript qui permet d'identifier le Class.Name :
Je souhaites tout simplement que le "li" cliqué applique une class css qui indique que l'on se trouve sur ce "li" ... mais là, je sèche...
Une idée ?
Merci
Je bute sur un menu à onglet dynamique et notamment dans sur la fonction Javascript qui permet d'identifier le Class.Name :
- Code: Tout sélectionner
function affiche(num){
// Début de la numérotation
var i = 1;
// Nom de l'id
var NomId = 'ouvre-';
var MonDiv;
// On boucle et on masque tout
while((
MonDiv = document.getElementById( NomId + (i++)))){
MonDiv.style.display = 'none';
}
//On affiche l'élément concerné
MonDiv = document.getElementById( NomId + num);
MonDiv.style.display = 'block';
}
- Code: Tout sélectionner
....
<li><a onclick="affiche(1);">teste</a></li>
<li><a onclick="affiche(2);">teste 2</a></li>
....
Je souhaites tout simplement que le "li" cliqué applique une class css qui indique que l'on se trouve sur ce "li" ... mais là, je sèche...
Une idée ?
Merci
-

tryan - WRInaute passionné

- Messages: 2355
- Inscription: 20 Fév 2005
Re: Class.Name Javascript sur liste dynamique?
Merci pour ta réponse forty mais je dois avoué être une "burne" en JS alors ce que tu me dis est du chinois
. J'ai lus sur le net à quoi servait "parentNode" mais de la à le mettre en application...
-

spout - WRInaute accro

- Messages: 4377
- Inscription: 14 Mai 2003
Re: Class.Name Javascript sur liste dynamique?
Si t'es une burne en JS, pourquoi réinventer la roue ? http://jqueryui.com/demos/tabs/
-

spout - WRInaute accro

- Messages: 4377
- Inscription: 14 Mai 2003
Re: Class.Name Javascript sur liste dynamique?
Bon ben exemple avec le parentNode suggéré par forty: http://jsbin.com/ihonid/edit#source
-

tryan - WRInaute passionné

- Messages: 2355
- Inscription: 20 Fév 2005
Re: Class.Name Javascript sur liste dynamique?
Merci pour le lien
.
Je commence à comprendre doucement le truc...j'arrive pour le moment à changer la class css du "li" cliqué mais je ne parviens pas à faire en sorte qu'un seul élément affiche la dite class. Si je clique sur 2 "li" successivement, les 2 "li" garde la class css active au lieu d'un seul...
Une suggestion?
Je commence à comprendre doucement le truc...j'arrive pour le moment à changer la class css du "li" cliqué mais je ne parviens pas à faire en sorte qu'un seul élément affiche la dite class. Si je clique sur 2 "li" successivement, les 2 "li" garde la class css active au lieu d'un seul...
- Code: Tout sélectionner
function affiche(element, num){
// Début de la numérotation
var i = 1;
// Nom de l'id
var NomId = 'ouvre-';
var MonDiv;
//Pour changer la class css
var changeclass;
//-------
// On boucle
while(
MonDiv = document.getElementById( NomId + (i++))
//Fin boucle while
)
{
//on masque tout
MonDiv.style.display = 'none';
}
//On affiche l'élément concerné
MonDiv = document.getElementById( NomId + num);
MonDiv.style.display = 'block';
//--------------------------------------------------
alert("L'élément actuel est : " + element.parentNode.className);
changeclass = ( NomId + num);
alert("L'élement est maintenant égal à \"changeclass\" :" + changeclass);
if(element.parentNode.className == changeclass)
{
element.parentNode.className="active";
alert("l'élément parent passe à : " + element.parentNode.className);
}
//---------------------------------------------------
}
Une suggestion?
-

zeb - WRInaute accro

- Messages: 4553
- Inscription: 5 Déc 2004
Re: Class.Name Javascript sur liste dynamique?
J'ai pas dépouillé tout ton code mais si tu arrive a changer la class de la "li" active il faut que tu ajoute juste avant cela une itération qui met toutes les "li" a une class inactive.
dans l'ordre tu dé-sélectionne tout et tu sélectionne ensuite.
dans l'ordre tu dé-sélectionne tout et tu sélectionne ensuite.
-

zeb - WRInaute accro

- Messages: 4553
- Inscription: 5 Déc 2004
Re: Class.Name Javascript sur liste dynamique?
Sans tenir compte du CSS lié aux différentes boxs que les onglets contrôlent et juste pour le principe en simplifiant au max ton code JavaScript et en restant dans l'idée de tes conventions de nommage :
- Code: Tout sélectionner
<div id="onglets">
<ul>
<li class="inactif" id="onglet-1"><a onclick="affiche(1);">teste 1</a></li>
<li class="inactif" id="onglet-2"><a onclick="affiche(2);">teste 2</a></li>
<li class="inactif" id="onglet-3"><a onclick="affiche(3);">teste 3</a></li>
<li class="inactif" id="onglet-4"><a onclick="affiche(4);">teste 4</a></li>
</ul>
</div>
<div id="ouvre-1">1</div>
<div id="ouvre-2">2</div>
<div id="ouvre-3">3</div>
<div id="ouvre-4">4</div>
<script type="text/javascript">
affiche(1); // initialisation
function affiche(num){
// On boucle et on masque tout
for(i=1;i<5;i++){
document.getElementById( 'ouvre-' + i).style.display = 'none';
document.getElementById('onglet-' + i).className = "inactif";
}
//On affiche l'élément concerné
document.getElementById( 'ouvre-' + num).style.display = 'block';;
document.getElementById('onglet-' + num).className = "actif";
}
</script>
<style type="text/css">
.inactif{
background-color: red;
}
.actif{
background-color: blue;
}
</style>
-

tryan - WRInaute passionné

- Messages: 2355
- Inscription: 20 Fév 2005
Re: Class.Name Javascript sur liste dynamique?
Merci zeb pour cet exemple
. Je dois avoué être un peut dégoûté par la "simplicité" de celui-ci alors que je m'arrache les tifs avec des "element.parentNode.className" et Cie
.
Bon, je vais tenté d'arranger ton code avec une boucle while() si c'est c'est possible...
Note : je hais le JS
Encore merci
Bon, je vais tenté d'arranger ton code avec une boucle while() si c'est c'est possible...
Note : je hais le JS
Encore merci
-

zeb - WRInaute accro

- Messages: 4553
- Inscription: 5 Déc 2004
Re: Class.Name Javascript sur liste dynamique?
tryan a écrit:la "simplicité" de celui-ci
Tu peux aussi charger mootols, JQuery et j'en passe mais ça donnera pas plus simple. Mais si tu veux des effets "smart" c'est plus chiant.
Je voie a ton avatar qu'il te reste quelques cheveux tout va bien alors
-

tryan - WRInaute passionné

- Messages: 2355
- Inscription: 20 Fév 2005
Re: Class.Name Javascript sur liste dynamique?
zeb a écrit:Je voie a ton avatar qu'il te reste quelques cheveux tout va bien alors
C'est pas certains
La j'essaye d'adapter ton code au mien en utilisant une boucle while afin d'ajouter autant de "li" que je veux sans être obligé de retoucher à la fonction à chaque ajout et je crois que je vais allé chercher une corde
Pour ce qui est de jquery et compagnie, je sais que c'est plus simple à mettre en place mais je ne vois pas l'utilité d'avoir une tonne de ligne de js alors que quelques une peuvent être largement suffisant.
-

spout - WRInaute accro

- Messages: 4377
- Inscription: 14 Mai 2003
Re: Class.Name Javascript sur liste dynamique?
tryan a écrit:Pour ce qui est de jquery et compagnie, je sais que c'est plus simple à mettre en place mais je ne vois pas l'utilité d'avoir une tonne de ligne de js alors que quelques une peuvent être largement suffisant.
- Simplicité (Write Less, Do More)
- Compatibilité accrue entre les différents navigateurs
- C'est vrai que c'est pas rien à embarquer, mais avec les CDN c'est nettement réduit.
- Communauté: rapports de bugs, support, plugins à la pelle, ...
- ...
Je n'avais jamais fait de JS (hors copier/coller
Alors pr un bidouilleur comme toi (c'est pas péjoratif), je t'assure ça vaut le détour
-

zeb - WRInaute accro

- Messages: 4553
- Inscription: 5 Déc 2004
Re: Class.Name Javascript sur liste dynamique?
spout a écrit:Alors pr un bidouilleur comme toi (c'est pas péjoratif), je t'assure ça vaut le détour
C'est d'ailleurs pour ça que j'ai ajouté que si l'objectif était d'avoir des effets "smart" le JavaScript à la mano ne suffisait pas.
Pour le bidouilleur, je le prend surtout comme un compliment, la passion du code qui m'écarte des frameworks est en effet du a cette passion du code donc c'est pas du tout péjoratif pour moi
Le seul truc qui me saoule et qui m'a toujours fait désinstaller les framework javascript c'est le poids des pages pour "juste un effet", mais il n'en reste pas moins que si un site complet a besoins d'effet de qualité ce genre d'outil s'avère un must c'est évident.
mais bon c'est surement viscéral chez moi j'étais encore cet aprem en train de réfléchir pour virer sur un site une API JavaScript gérant des time line pourtant très bien foutues. Bref on ne se refait pas.
17 messages
• Page 1 sur 2 • 1, 2
Lectures recommandées sur ce thème :
- [Résolu] Pb changement de class javascript
- contenu généré par du javascript dynamique
- Code javascript de menu dynamique avec des options depuis SQL
- <td class".."> ou <p class".." lequel le meilleur
- Redirection d'une page dynamique vers une page dynamique
- <hn> et class
- Cannot redeclare class
- ip class c et référencement
- Css Class ou ID ???
- balise H1 et class
Consultez la description détaillée des produits ou services de Google suivants : Picnik
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 6 invités

