Foros del Web » Programando para Internet » Javascript »

Cambiar funcion en enlace

Estas en el tema de Cambiar funcion en enlace en el foro de Javascript en Foros del Web. Chicos tengo una duda me colaboran por favor Tengo el siguiente codigo: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código HTML: Ver original < html >   < head > ...
  #1 (permalink)  
Antiguo 19/10/2012, 14:30
 
Fecha de Ingreso: noviembre-2010
Mensajes: 204
Antigüedad: 14 años
Puntos: 1
Cambiar funcion en enlace

Chicos tengo una duda me colaboran por favor

Tengo el siguiente codigo:

Código HTML:
Ver original
  1.  
  2.  
  3. <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />
  4.  
  5. <title>Formulario nota nueva</title>
  6.  
  7. <script type="text/javascript">
  8.        
  9. function boton_inicio()
  10. {
  11.   document.getElementById('boton').innerHTML="Final";
  12.  
  13. }
  14.  
  15. function boton_final()
  16. {
  17.    document.getElementById('boton').innerHTML="Inicio";
  18.  
  19. }
  20.  
  21.  
  22. </head>
  23.  
  24.  
  25. <div id="boton"><a href="javascript:boton_inicio();">Inicio</a></div>
  26.  
  27. </body>
  28. </html>

Necesito cambiar el nombre y la funcion del enlace al oprimir el enlace

Al oprimir el enlace quiero cambiar el nombre del enlace (Inicio por Final) y la funcion (boton_inicio() por boton_final()), ya logre cambiar el nombre del enlace, pero no se como cambiar el nombre de la funcion.

Gracias
  #2 (permalink)  
Antiguo 19/10/2012, 15:12
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
Respuesta: Cambiar funcion en enlace

prueba con
Cita:
<a href="javascript:boton_inicio();" onclick="this.href = this.href.replace(this.href, function(original) {var fnc = (original == 'javascript:boton_inicio();')? 'javascript:boton_final();' : 'javascript:boton_inicio();'; return fnc;});">Inicio</a>
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #3 (permalink)  
Antiguo 19/10/2012, 17:22
 
Fecha de Ingreso: noviembre-2010
Mensajes: 204
Antigüedad: 14 años
Puntos: 1
Respuesta: Cambiar funcion en enlace

IsaBelM, gracias por ayudarme

Probe lo que me sugeriste pero no me funciono

Lo que yo quiero es que al oprimir el enlace, este cambie de nombre (Inicio por final) esto ya lo logre, lo que necesito es que en el mismo enlace tambien cambie el nombre de la funcion (boton_inicio() por boton_final() )

Gracias
  #4 (permalink)  
Antiguo 19/10/2012, 17:35
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
Respuesta: Cambiar funcion en enlace

lo he probado y es justamente lo que hace. e incluso aprovechando que el pisuerga pasa por valladoliz
Cita:
<a href="javascript:boton_inicio();" onclick="this.href = this.href.replace(this.href, function(original) {var fnc = (original == 'javascript:boton_inicio();')? 'javascript:boton_final();' : 'javascript:boton_inicio();'; return fnc;}); this.innerHTML = (this.innerHTML == 'Inicio') ? 'Final' : 'Inicio';">Inicio</a>
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #5 (permalink)  
Antiguo 22/10/2012, 13:57
 
Fecha de Ingreso: noviembre-2010
Mensajes: 204
Antigüedad: 14 años
Puntos: 1
Respuesta: Cambiar funcion en enlace

IsaBelM, estuve probando tu sugerencia, funciona bien pero

Lo que yo estoy buscando es algo parecido a este codigo que pongo a continuacion, ya que son varios los parametros que deseo cambiar en el enlace


Con este codigo logro cambiar el nombre del enlace, pero no logro cambiar la funcion del enlace. ¿Que me falta?

Código HTML:
Ver original
  1.  
  2.  
  3. <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />
  4.  
  5. <title>Formulario nota nueva</title>
  6.  
  7. <script type="text/javascript">
  8.        
  9. function boton_inicio()
  10. {
  11.   document.getElementById('boton').innerHTML="Final";
  12.   document.getElementById('funcion').href = "javascript:boton_final();";
  13. }
  14.  
  15. function boton_final()
  16. {
  17.   document.getElementById('boton').innerHTML="Inicio";
  18.   document.getElementById('funcion').href = "javascript:boton_inicio();";
  19. }
  20.  
  21.  
  22. </head>
  23.  
  24.  
  25. <div id="boton"><a id="funcion" href="javascript:boton_inicio();">Inicio</a></div>
  26.  
  27. </body>
  28. </html>

Gracias

Última edición por isabelramirezmontoya; 22/10/2012 a las 14:05
  #6 (permalink)  
Antiguo 22/10/2012, 14:29
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 10 meses
Puntos: 206
Respuesta: Cambiar funcion en enlace

http://jsfiddle.net/marlanga/JbJnX/1
  #7 (permalink)  
Antiguo 22/10/2012, 15:44
 
Fecha de Ingreso: noviembre-2010
Mensajes: 204
Antigüedad: 14 años
Puntos: 1
Respuesta: Cambiar funcion en enlace

marlanga, que pena contigo no entendi el link

Con el codigo que coloque el nombre del enlace ya se cambia, lo que no logro cambiar es el nombre de la funcion, ¿que falta en la instruccion document.getElementById('funcion').href = "javascript:boton_inicio(); para que funcione?

gracias
  #8 (permalink)  
Antiguo 22/10/2012, 15:56
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 10 meses
Puntos: 206
Respuesta: Cambiar funcion en enlace

Estas haciendo el innerHTML al elemento equivocado.
  #9 (permalink)  
Antiguo 22/10/2012, 17:09
 
Fecha de Ingreso: noviembre-2010
Mensajes: 204
Antigüedad: 14 años
Puntos: 1
Respuesta: Cambiar funcion en enlace

marlanga, soy algo nueva en esto de programar, que pena contigo no entiendo bien lo que me dices que tengo mal

Mi idea es que:

Con esta instruccion document.getElementById('boton').innerHTML="Final" ; cambio el titulo Inicio por final en el id=boton.

Con la instruccion document.getElementById('funcion').href = "javascript:boton_final();" quiero cambiar la funcion que tengo referenciada con id=funcion.

¿No es asi como se debe hacer?
  #10 (permalink)  
Antiguo 22/10/2012, 17:49
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 10 meses
Puntos: 206
Respuesta: Cambiar funcion en enlace

Con esta instruccion document.getElementById('boton').innerHTML="Final"

Con esa instrucción te cargas en contenido del DIV y lo sustituyes por la cadena de texto "Final".
Es decir, te cargas el enlace y lo sustituyes por una cadena de texto.

Si lo que quieres es cambiar en texto del enlace, el inner se lo haces al enlace.
  #11 (permalink)  
Antiguo 22/10/2012, 19:06
 
Fecha de Ingreso: noviembre-2010
Mensajes: 204
Antigüedad: 14 años
Puntos: 1
Respuesta: Cambiar funcion en enlace

marlanga; tal vez no me hecho entender

Cuando presiono este enlace <div id="boton"><a id="funcion" href="javascript:boton_inicio();">Inicio</a></div> yo quiero que cambie Inicio por Final, eso ya lo logre con esta funcion

function boton_inicio()
{
document.getElementById('boton').innerHTML="Final" ;
}

lo que no he logrado es cambiar href="javascript:boton_inicio() por href="javascript:boton_final() cuando presiono el enlace, e intentado con esto document.getElementById('funcion').href = "javascript:boton_final();" pero no lo he logrado
  #12 (permalink)  
Antiguo 22/10/2012, 20:23
(Desactivado)
 
Fecha de Ingreso: noviembre-2002
Ubicación: Ciudad Autónoma de Buenos Aires
Mensajes: 2.367
Antigüedad: 22 años
Puntos: 317
Respuesta: Cambiar funcion en enlace

Mirá isabelramirezmontoya, no conozco mucho a marlanga y no sé cuanta paciencia tiene, así que antes de que te diga una barbaridad prefiero meterme yo, que si lo hago ya no sorprende a nadie.

No tenés una duda, tenés un voleo de aquellos, o no entendés un pito de JS.

Como bien te explicaron, con document.getElementById('boton').innerHTML="Final" no estás cambiando el "nombre" al enlace, estás borrando todo el enlace. Solamente dejás el texto adentro del <div id="boton"> ¿a qué enlace le querés cambiar el destino, si ya lo limpiaste?

Tenés que trabajar sobre el <a id="funcion"> siempre.

Y si tenés más de un ancla, lo avisas desde el principio, para que no se pierda tiempo y esfuerzo en dejarte ejemplos y que después aparezcas diciendo que no te sirven.
(Ah, y ya que lo menciono, no podés repetir id's, así que para apuntar a varios enlaces, vas a tener que usar colecciones.)

Ya hace rato que andás por acá. Leete un manualcito, por caridad.

P.D.:
Cita:
Iniciado por IsaBelM
"aprovechando que el pisuerga pasa por valladoliz".
Es lo lindo que tiene este Foro, todos los días aprendemos una frase nueva.
  #13 (permalink)  
Antiguo 22/10/2012, 21:15
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: Cambiar funcion en enlace

Cita:
Es lo lindo que tiene este Foro, todos los días aprendemos una frase nueva.

Estuve buscando equivalencias, por méxico
Y hablando de enchiladas
Y acá en la Argentina... voy a inventar una
"Que dasatre la inflación, viste"
o es que existe alguna @furoya?

Con respecto a @isabelramirezmontoya, si, es otro de sus desaguisados, pero tiene un mérito, estoy seguro que son de elaboración propia, y eso es mucho decir.
Voy a ver si la pego, en una de esas, esto es lo que intenta hacer
Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2.    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>cambiar text + función.</title>
  6. <script type="text/javascript">
  7. //<![CDATA[
  8. function cambia() {
  9. if ((document.getElementById('funcion').innerHTML) == 'Fin') {
  10.    alert('ejecutamos la función para cuando el texto es Fin y luego cambia a Inicio');
  11.  document.getElementById('funcion').innerHTML = 'Inicio';
  12. }
  13. else {
  14.  alert('ejecutamos la función para cuando el texto es Inicio y luego cambia a Fin');
  15.  document.getElementById('funcion').innerHTML = 'Fin';
  16. }
  17. }
  18. //]]>
  19. </head>
  20. <a id="funcion" href="#" onclick="cambia()" name="funcion">Inicio</a>
  21. </body>
  22. </html>

__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #14 (permalink)  
Antiguo 23/10/2012, 08:47
(Desactivado)
 
Fecha de Ingreso: noviembre-2002
Ubicación: Ciudad Autónoma de Buenos Aires
Mensajes: 2.367
Antigüedad: 22 años
Puntos: 317
Respuesta: Cambiar funcion en enlace

¿Sabés que estuve pensando, y no recuerdo ninguna? Debe ser la edad...

Hay muletillas, pero son personales, cada uno usa la suya.

Con respecto al planteo original, es cierto. No hay dudas de que es factura propia. Por eso a veces me meto en sus temas a ver si se puede colaborar. Pero hay cosas que te sacan, esto es más que elemental y encima se lo explicaron claramente!
  #15 (permalink)  
Antiguo 23/10/2012, 13:48
 
Fecha de Ingreso: noviembre-2010
Mensajes: 204
Antigüedad: 14 años
Puntos: 1
Respuesta: Cambiar funcion en enlace

emprear, marlanga gracias por sus sugerencias y paciencia

Despues de revisarlo y ver sus sugerencias encontre el error y logre que me funcionara. Esto era lo que necesitaba.

Código HTML:
Ver original
  1.  
  2.  
  3. <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />
  4.  
  5. <title>Prueba</title>
  6.  
  7. <script type="text/javascript">
  8.        
  9. function boton_inicio()
  10. {
  11.     document.getElementById('boton').innerHTML="Final";
  12.     document.getElementById('boton').href = "javascript:boton_final()";
  13. }
  14.  
  15. function boton_final()
  16. {
  17.    document.getElementById('boton').innerHTML="Inicio";
  18.    document.getElementById('boton').href = "javascript:boton_inicio()";
  19. }
  20.  
  21.  
  22. </head>
  23.  
  24. <div><a id="boton" href="javascript:boton_inicio()">Inicio</a></div>
  25.  
  26. </body>
  27. </html>

Gracias
  #16 (permalink)  
Antiguo 23/10/2012, 18:56
(Desactivado)
 
Fecha de Ingreso: noviembre-2002
Ubicación: Ciudad Autónoma de Buenos Aires
Mensajes: 2.367
Antigüedad: 22 años
Puntos: 317
Respuesta: Cambiar funcion en enlace

¿Y A MÍ QUE ME PARTA UN RAYO?

¿Para eso te mostré (también) que tenías que apuntarle al enlace?

¡Y encima que me puse a hacer un escript para dejar en tu tema!

Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<html>
<head>
<meta http-equiv=Content-Type content="text/html; charset=utf-8">
<title>BOTÓN ARRIBA/ABAJO. FF, Op, Chr, ¿IE?.</title>
<script type="text/javascript">

function desplazado() {
 var altoDocumento = document.body.scrollHeight;
 var yScroll = self.pageYOffset || (document.documentElement.scrollTop+document.body.scrollTop); 
 var altoVentana = window.outerHeight || screen.availHeight;

	document.title = altoDocumento +" "+ yScroll +" "+ altoVentana;

 if(yScroll < 50){
  document.getElementById("boton").innerHTML = "ABAJO";
  document.getElementById("boton").href = "#abajo";
 }
 else if(yScroll > (altoDocumento-altoVentana)){
  document.getElementById("boton").innerHTML = "ARRIBA";
  document.getElementById("boton").href = "#arriba";
 }
}

onscroll = desplazado;

</script>
<style type="text/css">
#boton {position: fixed; color: red; background-color: silver; 
border: 1px solid black; border-radius: 10%; font-size:150%; 
font-weight: bold; font-family: sans-serif; padding: .5%; 
text-decoration: none; right: 10px; top: 50%; display: block; 
width: 4em; text-align: center; }

#arriba, #abajo {font-size: 300%; }

p {line-height: 350%; }
</style>
</head>
<body>
<div id="arriba">↑</div>

<a href="#abajo" id="boton"> ABAJO </a>

<p>00 <br>01 <br>02 <br>03 <br>04 <br>05 <br>06 <br>07 <br>08 <br>09 <br>
10 <br>11 <br>12 <br>13 <br>14 <br>15 <br>16 <br>17 <br>18 <br>19 </p>

<div id="abajo">↓</div>
</body>
</html>
(Ahora por eso, no te dejo nada ...

¡Tomá, tomá y tomá!)




P.D. : Una última duda. Al final sos nena o sos nene ?. Porque recuerdo algún tema donde te referías a vos mismo/a con género masculino, pero aquí dijiste "soy algo nueva en esto de programar". Ahora me asaltó la duda.

(Por favor, decime que sos mujer ...)
  #17 (permalink)  
Antiguo 24/10/2012, 05:57
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
Respuesta: Cambiar funcion en enlace

Cita:
Iniciado por furoya Ver Mensaje
P.D. : Una última duda. Al final sos nena o sos nene ?. Porque recuerdo algún tema donde te referías a vos mismo/a con género masculino, pero aquí dijiste "soy algo nueva en esto de programar". Ahora me asaltó la duda.

(Por favor, decime que sos mujer ...)
eres un fakebuster
http://www.forosdelweb.com/f13/como-...9/#post4266986
Cita:
if(mujer == hombre) return hombre;
a partir de ahora yo también seré ambiguo
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #18 (permalink)  
Antiguo 24/10/2012, 06:27
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: Cambiar funcion en enlace

Cita:
Iniciado por IsaBelM Ver Mensaje
a partir de ahora yo también seré ambiguo
Que decepción , ya no se puede confiar en los perfíles.
Cvander, creador el primer foro andrógino del cyberspacio.
Hasta el Guinness no paramos !!!!
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #19 (permalink)  
Antiguo 24/10/2012, 07:16
(Desactivado)
 
Fecha de Ingreso: noviembre-2002
Ubicación: Ciudad Autónoma de Buenos Aires
Mensajes: 2.367
Antigüedad: 22 años
Puntos: 317
Respuesta: Cambiar funcion en enlace

¿fakebuster? ¿ambiguo? ¿andrógino ?

En mi barrio les dicen de otra forma...


Y con respecto a

Cita:
Iniciado por IsaBelM Ver Mensaje
a partir de ahora yo también seré ambiguo
aclará que es broma, porque alguno ya se debe estar arrojando por una ventana.


P.D.: Qué lástima que ya lo desvirtuamos. Como no podía dormir, hice otra versión del escript que no le voy a postear a isabelramirezmontoya, y pensaba mostrarlo en algún lado para ver si me lo podían ajustar. Hay un desplazamiento que no me sale muy bien (por no decir que me sale para el c*l*). Bueno, quizá otro día.
  #20 (permalink)  
Antiguo 24/10/2012, 07:45
 
Fecha de Ingreso: septiembre-2010
Ubicación: cali
Mensajes: 15
Antigüedad: 14 años, 1 mes
Puntos: 4
Respuesta: Cambiar funcion en enlace

isabelM, emprear, furoya, vaya trio (o sexteto por lo que estan mencionando)
Como me hacen reir

Ja ja ja
  #21 (permalink)  
Antiguo 24/10/2012, 13:30
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
Respuesta: Cambiar funcion en enlace

<desvirtuación>
creo que somos un trio (sin ningún tipo de connotación) como la santisima trinidad

me pregunto, quién de los 3 es el padre??
</desvirtuación>
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #22 (permalink)  
Antiguo 24/10/2012, 15:01
(Desactivado)
 
Fecha de Ingreso: noviembre-2002
Ubicación: Ciudad Autónoma de Buenos Aires
Mensajes: 2.367
Antigüedad: 22 años
Puntos: 317
Respuesta: Cambiar funcion en enlace

Me corresponde. Privilegios de la edad.



(Bueno, ya que desbarrancamos el tema, disfrutemos la caída.)

¿Sabías que en varias lenguas semíticas (y otras más antiguas) "el espíritu" era en realidad "la espíritu"?.

Se hizo masculino en alguna traducción, pero originalmente las trilogías eran un concepto de unidad familiar.


Con respecto a lo de "fakebuster" (que en mi barrio le dicen "buchón"), quiero aclarar que no hay animadversión personal hacia isabelramirezmontoya (sigo dolido por su desprecio, pero mañana mi analista me lo supera; para eso le pago). Lo mío fue solamente otro típico comentario machísta que me brota de vez en cuando.

Por supuesto que ni me interesa si es hombre, mujer o lo que más le guste.
Afortunadamente en esta vida cada uno puede hacer de su culto un rito, sin tener que darle explicaciones a nadie.

Y menos a mí.

Etiquetas: enlace, formulario, funcion, html
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 01:09.