Foros del Web » Programando para Internet » Javascript »

Cambiar texto al hacer click en un href

Estas en el tema de Cambiar texto al hacer click en un href en el foro de Javascript en Foros del Web. hola amigos tengo este link necesito que al hacer click se muestre un + o un - segun el valor devuelto por la funcion ocultar ...
  #1 (permalink)  
Antiguo 25/07/2010, 15:25
 
Fecha de Ingreso: octubre-2009
Mensajes: 68
Antigüedad: 14 años, 6 meses
Puntos: 1
Cambiar texto al hacer click en un href

hola amigos tengo este link necesito que al hacer click se muestre un + o un - segun el valor devuelto por la funcion ocultar
.
<a href = javascript:ocultar('".$fila['id_respuesta']."') title = 'Ver/Ocultar mensajes'>+</a>

function ocultar(respuesta)
{
var bloque = eval('document.form1.respuesta_'+respuesta);
if (bloque.value == 0)
{ document.getElementById(respuesta).style.display = 'none';
bloque.value = 1;
return;
}
if (bloque.value == 1)
{ document.getElementById(respuesta).style.display = 'block';
bloque.value = 0;
return;
}
}
  #2 (permalink)  
Antiguo 25/07/2010, 15:37
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Cambiar texto al hacer click en un href

Si en os dos ifs devuelves false ¿cómo quieres que devuelva true?
Código Javascript:
Ver original
  1. if (bloque.value == 0){
  2.  document.getElementById(respuesta).style.display = 'none';
  3.  bloque.value = 1;
  4.  document.getElementById('masomenos').inerHTML = '-'
  5.  return;
  6. }
Por ejemplo.
Y al enlace le pones de id 'masomenos'.

Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #3 (permalink)  
Antiguo 26/07/2010, 14:43
 
Fecha de Ingreso: octubre-2009
Mensajes: 68
Antigüedad: 14 años, 6 meses
Puntos: 1
Respuesta: Cambiar texto al hacer click en un href

no me quedo claro lo de colocar id al enlace este es mi enlace
<a href = javascript:ocultar('".$fila['id_respuesta']."') title = 'Ver/Ocultar mensajes'>+</a>
inicialmente que mostraria?
algo asi

<a href = javascript:ocultar('".$fila['id_respuesta']."') id='masomenos' title = 'Ver/Ocultar mensajes'>+</a>

Última edición por laupatri1084; 26/07/2010 a las 15:22
  #4 (permalink)  
Antiguo 26/07/2010, 15:52
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Cambiar texto al hacer click en un href

Sí, pones eso y en el if pones '+' ó '-', según te interese, y en el else lo contrario.
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #5 (permalink)  
Antiguo 26/07/2010, 17:41
 
Fecha de Ingreso: octubre-2009
Mensajes: 68
Antigüedad: 14 años, 6 meses
Puntos: 1
Respuesta: Cambiar texto al hacer click en un href

muchas gracias por tu ayuda
coloco la funcion asi
function ocultar(respuesta)
{
var bloque = eval('document.form1.respuesta_'+respuesta);
if (bloque.value == 0)
{
document.getElementById(respuesta).style.display = 'none'
document.getElementById('masomenos').inerHTML = '+';
bloque.value = 1;
return;
}
if (bloque.value == 1)
{ document.getElementById(respuesta).style.display = 'block';
document.getElementById('masomenos').inerHTML = '-';
bloque.value = 0;
return;
}
}

y el link
<a href = javascript:ocultar('".$fila['id_respuesta']."') id='masomenos' title = 'Ver/Ocultar mensajes'>+</a>

no se que tengo mal pero no funciona.
gracias
  #6 (permalink)  
Antiguo 27/07/2010, 12:04
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Cambiar texto al hacer click en un href

Modifiqué lo del eval(), ahora sí funciona. De todas formas, me acabo de dar cuenta de que los values son varibles de tipo string, por tanto deben llevar comillas, aunque funciona igual sin comillas en este caso.
Código Javascript:
Ver original
  1. function ocultar(respuesta)
  2. {
  3. var bloque = document.forms['miForm'].elements['respuesta_'+respuesta];
  4. if (bloque.value == 0)
  5. {
  6. document.getElementById(respuesta).style.display = 'none'
  7. document.getElementById('masomenos').inerHTML = '+';
  8. bloque.value = 1;
  9. return;
  10. }
  11. if (bloque.value == 1)
  12. { document.getElementById(respuesta).style.display = 'block';
  13. document.getElementById('masomenos').inerHTML = '-';
  14. bloque.value = 0;
  15. return;
  16. }
  17. }
  18. </script>

Por cierto, el código se puede acortar un poco de esta manera:
Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. function ocultar(respuesta){
  3. var si = (bloque.value == 0);
  4. var bloque = document.forms['miForm'].elements['respuesta_'+respuesta];
  5. document.getElementById(respuesta).style.display = (si) ? 'none' : 'block';
  6. document.getElementById('masomenos').innerHTML = (si) ? '-' : '+';
  7. bloque.value = (si) ? '1' : '0';
  8. return;
  9. }
  10. </script>

Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red

Etiquetas: href
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:51.