2011-11-16 4 views
0

Devrait être simple et clair, mais je ne comprends pas ce qui ne va pas ici. Simple javascript afficher/masquer le contenu. Essayé à la fois l'affichage - bloc/aucun et la visibilité - montrer/caché. Ne fonctionne pas .. Cela fonctionne si toutes les divs visibilité nommées npctext_X sont définies pour visible. mais je les dois être cachés, becouse cela sera utilisé dans les dialogues ...Javascript afficher le contenu

<script type="text/javascript"> 

function npcfunkc(karodyt,senas){ 

var showit = 'npctext_'+karodyt; 
var hideit = 'npctext_'+senas 

//document.getElementById(showit).style.display='block'; 
//document.getElementById(hideit).style.display='none'; 

document.getElementById(showit).style.visibility = 'show'; 
document.getElementById(hideit).style.visibility = 'hidden'; 
} 
</script> 


<div class='npctalk'> 

<div id='npctext_1' style='visibility:visible;'>text 1 text 1 text 1 <br /><br /> 
    <button onclick='npcfunkc(2,1)'>show 2 [hide 1] 
    </button><br /> 
    <button onclick='npcfunkc(3,1)'>show 3 [hide 1] 
    </button><br /> 
</div> 

<div id='npctext_2' style='visibility:hidden;'>text 2 text 2 text 2 <br /><br /> 
    <button onclick='npcfunkc(1,2)'>show 1, [hide 2] 
    </button><br /> 
    <button onclick='npcfunkc(3,2)'>show 3, [hide 2] 
    </button><br /> 
</div> 

<div id='npctext_3' style='visibility:hidden;'>text 3 text 3 text 3 <br /><br /> 
    <button onclick='npcfunkc(2,3)'>show 2, [hide 3] 
    </button><br /> 
    <button onclick='npcfunkc(1,3)'>show 1, [hide 3] 
    </button><br /> 
</div> 

</div> 
+0

Bienvenue sur stackoverflow! Veuillez consulter la section faq pour toute aide concernant le balisage. J'ai édité votre indentation de code pour le balisage. - http://stackoverflow.com/editing-help – Smamatti

+0

Y at-il une raison particulière pour laquelle vous n'utilisez pas une bibliothèque JS comme YUI ou jQuery? –

+0

le script fonctionne pour moi comme j'ai essayé d'utiliser display: block/none – david

Répondre

1

En tant que meilleure pratique et d'une solution potentielle à votre problème, vous devez utiliser des classes CSS et ajouter ou supprimer ces classes de vos objets.

Cette Tutorial peut vous aider.

+0

Comment est-il une «meilleure pratique» pour ajouter ou supprimer des classes d'objets pour les cacher ou les montrer? – blankabout

+0

@blankabout il est préférable d'utiliser des classes plutôt que de définir directement les propriétés de style de l'objet. La mise en œuvre du masquage ou de l'affichage réel des éléments est laissée à l'appréciation du développeur. – MateusBR

+0

Bien que l'utilisation de CSS plutôt que de styles en ligne soit une bonne pratique, vous devez préciser dans votre réponse que l'ajout ou la suppression de classes d'un objet n'est certainement pas un bon moyen de cacher ou de montrer la question. – blankabout

0

mVous envoyez des entiers à votre fonction. Essayez de les emballer avec des guillemets comme ceci pour les convertir en ficelle ....

npcfunkc("2", "1")