2017-06-10 1 views
0

permet de dire que j'ai 2 boutons verticaux sur le côté gauche:trouver un nom d'identification d'une classe lors de l'utilisation d'un écouteur d'événement

<div class="button" id="files" >files</div> 
<div class="button" id="dirs">dirs</div>  

quand on est cliquée, je veux mettre la case correspondante à côté (en ligne)

<div class="commands_group" id="files_commands">file commands</div> 
<div class="commands_group" id="dirs_commands">dir commands</div> 

J'ai commencé en ajoutant un écouteur d'événement à chaque bouton:

window.onload = init; 

function init() 
{ 
    'use strict'; 
    var classname = document.getElementsByClassName("button"); 

    for(var i=0;i<classname.length;i++) 
    { 
     classname[i].addEventListener('click', show_commands(), false); 
    } 
} 

ce qui est bien. Mais maintenant je veux mettre la boîte correspondante en ligne, c'est-à-dire si le bouton des fichiers a été cliqué, files_commands doit passer de display: none à afficher: inline.

Je ne parviens pas à sélectionner la case correspondante

mon code actuel est:

function show_commands() 
{ 
    'use strict'; 

    var classname = document.getElementsByClassName("commands_group"); 
    for(var i=0;i<classname.length;i++) 
    {  
     classname[i].style.display = 'none';  
    } //just to reset the view to nothing 

le soufflet doit être la partie principale (et est la base de ma question) mais je ne ne sais pas comment sélectionner l'id spécifique du groupe de commandes

var name = this.id.stringValue.concat("_commands"); 
    document.getElementById(name).style.display = 'inline'; 

} 
+2

'addEventListener (clic, show_commands(), faux);' devrait être 'addEventListener (clic, show_commands, false); ' – Rajesh

+0

Merci pour le commentaire mais il ne semble toujours pas l'aimer – WhyYO

+0

Pour être juste, cette réponse et le marqué étaient tous les deux nécessaires. Merci compagnon – WhyYO

Répondre

1

est ce que vous avez voulu?

var name = this.id.stringValue.concat("_commands"); 

cette ligne devrait être var name = this.id.concat("_commands");

window.onload = init; 
 

 
function init() 
 
{ 
 
    'use strict'; 
 
    var classname = document.getElementsByClassName("button"); 
 

 
    for(var i=0;i<classname.length;i++) 
 
    { 
 
     classname[i].addEventListener('click', show_commands, false); 
 
    } 
 
} 
 

 
function show_commands() 
 
{ 
 
    'use strict'; 
 

 
    var classname = document.getElementsByClassName("commands_group"); 
 
    for(var i=0;i<classname.length;i++) 
 
    {  
 
     classname[i].style.display = 'none';  
 
    } //just to reset the view to nothing 
 

 
    var name = this.id.concat("_commands"); 
 
    document.getElementById(name).style.display = 'inline'; 
 

 
}
<div class="button" id="files" >files</div> 
 
<div class="button" id="dirs">dirs</div>  
 

 
<div class="commands_group" id="files_commands">file commands</div> 
 
<div class="commands_group" id="dirs_commands">dir commands</div>

+1

place sur mate, merci. – WhyYO