Comunidad oficial de diseñadores web, web developers y Webmasters. Aqui podemos tratar temas actuales sobre diseño y tecnología. Podemos compartir y actualizarnos. Flash, PHP, ASP, Java, HTML, CSS, MySQL, CMS, etc. Unite YA y lee los Sticky
Ver más- 17,217 Miembros
- 12,963 Temas
- 4,975 Seguidores
[Solucionado] asignar ID con JavaScript
Hola gente, vuelvo a postear este tema, esta vez con un poco más de data para ver si alguien más puede ayudarme..primero que nada, esto es lo que estoy haciendo..
todo funciona CASI perfecto.. el asunto es que el botón sumate! consta de 4 estados... normal, hover, active y un cuarto estado que seria el "presionado" por llamarlo de algún modo, acá lo pueden ver...

para el modo "presionado" intento asignarle un ID con JavaScript, pero no hay caso...
este es el codigo que tengo..
CSS
.botonSumate{
width: 138px;
height: 40px;
position: relative;
left: 57px;
background: url(../img/sumate.png) no-repeat;
background-position: 0 -3px;
}
.botonSumate:hover{
background: url(../img/sumate.png) no-repeat;
background-position: 0 -45px;
}
.botonSumate:active{
background: url(../img/sumate.png) no-repeat;
background-position: 0 -88px;
}
#botonPressed{
width: 138px;
height: 40px;
position: relative;
left: 57px;
background: url(../img/sumate.png) no-repeat;
background-position: 0 -132px;
}
HTML
<div id="barraBotones">
<div class="botonSumate" onclick="mostrarOcultar()"></div>
</div>
<div id="sumate">
bla bla bla...
</div>
Este es el script que se ejecuta en el onclick..
<script type="text/javascript">
function mostrarOcultar(){
var boxInputs = document.getElementById("sumate");
if (boxInputs.style.display == "none"){
boxInputs.style.display = "block";
document.getElementByClassName("botonSumate")[0].setAttribute("id","botonPressed");
} else{
boxInputs.style.display = "none";
document.getElementByClassName("botonSumate")[0].setAttribute("id","");
}
}
</script>
Vale la aclaración de que si le escribo el ID manualmente al div, funciona... Pero no se porque no anda con el setAttribute
también probé lo siguiente:
document.getElementByClassName("botonSumate").id="botonPressed";
y esto también..
document.getElementByClassName("botonSumate")[0].setAttribute("background-position","0 - 132px");
y esto..
document.getElementByClassName("botonSumate").style.backgroundPosition(0 -132);
- 0Calificación
- 0Seguidores
- 509Visitas
- 0Favoritos
Global
Argentina
Chile
Colombia
España
México
Perú
Uruguay
Venezuela

14 comentarios
pero estoy usando sprites.. ahi esta la imagen.. y clases para el boton tambien, el tema es que cuando le quiero asignar un id o una clase al boton, para que tenga como background la ultima imagen del sprite, no me funca..
En el CSS reemplaza todo por esto:
.botonSumate{
width: 138px;
height: 40px;
position: relative;
left: 57px;
background: url(/img/sumate.png) no-repeat;
background-position: 0 -3px;
}
.botonSumate:hover{
background-position: 0 -45px;
}
.botonSumate:active{
background-position: 0 -88px;
}
.botonSumate.active{
background-position: 0 -132px;
}
La función queda así:
function mostrarOcultar(){
var boxInputs = document.getElementById("sumate");
if (boxInputs.style.display == "none"){
boxInputs.style.display = "block";
document.getElementById("techo").setAttribute("class","botonSumate active");
}
else{
boxInputs.style.display = "none";
document.getElementById("techo").setAttribute("class","botonSumate");
}
}
Y al div del botón que ejecuta la función agrega un id, en el ejemplo ocupé techo...
Quedaria asi:
document.getElementsByClassName("botonSumate")
sos un grande @soloxd
y yo soy un colgado...
las estoy usando.. mira el codigo que puse en el tema..
y tambien esta contemplado en css
Pero para los links el focus es practicamente lo mismo que los active