J'ai une fonction js très simple pour activer div visibilité, voici la version de travail:JS question de variable
function Toggle(obj) {
var state = document.getElementById(obj);
if (state.style.display === 'block') {
state.style.display = 'none';
}
else {
state.style.display = 'block';
}
}
Ici obj représente l'identifiant d'un div. Maintenant, j'ai plusieurs divs sur la page, et je veux que lorsque l'utilisateur ouvre un nouveau div, avoir déjà ouvert div fermé. J'ai essayé de le faire en modifiant ma fonction comme ceci:
var prev_obj = 'empty';
function Toggle(obj) {
var state = document.getElementById(obj);
if (state.style.display === 'block') {
state.style.display = 'none';
}
else {
if (prev_obj !== 'empty')
{
var prev_state = document.getElementById(prev_obj)
prev_state.style.display = 'none';
}
state.style.display = 'block';
prev_obj = obj;
}
}
Je suppose que cela est explicite aux sorciers js là-bas, donc je vais juste dire, quand je coder en dur la valeur pour prev_obj, cela fonctionne , mais quand je ne le fais pas, et firebug montre qu'il garde la valeur initiale ("vide")
Aide appréciée ainsi que tout autre moyen de le faire si vous l'avez.
Peut jQuery être utilisé pour la solution? –
Ce code devrait fonctionner ... Êtes-vous sûr que prev_obj est déclaré global? Pour un test rapide, essayez de supprimer 'var' de la déclaration de prev_obj. (ce n'est pas le type de chose qui devrait être global si ...) – Hersheezy
Comment la fonction 'Toggle' est appelée? –