Foros del Web » Programando para Internet » Javascript »

cambiar onclick al hacer click

Estas en el tema de cambiar onclick al hacer click en el foro de Javascript en Foros del Web. hola! estoy haciendo un botón para añadir/eliminar favoritos, entonces al pulsar la primera vez añade, le cambio la imagen y me gustaría también cambiarle el ...
  #1 (permalink)  
Antiguo 09/02/2012, 10:31
 
Fecha de Ingreso: marzo-2009
Mensajes: 509
Antigüedad: 15 años, 1 mes
Puntos: 17
cambiar onclick al hacer click

hola! estoy haciendo un botón para añadir/eliminar favoritos, entonces al pulsar la primera vez añade, le cambio la imagen y me gustaría también cambiarle el onclick, para si se vuelve a pulsar elimine:


Código:
 function anadirFav(){
          document.getElementById("fav").src="favorito.png";
          document.getElementById("fav").setAttribute=('onClick','eliminarFav();');
           alert("anadir");
 }
  function eliminarFav(){

         document.getElementById("fav").src="no_favorito.png";
          document.getElementById("fav").setAttribute=('onClick','anadirFav();');
           alert("eliminar");
 }

Código HTML:
<input type="image" id="fav" src="no_favorito.png" onClick = "anadirFav()" /> 

El cambio de imagen funciona perfecto, pero no me cambia la función, ¿alguien podría ayudarme?

Gracias!
  #2 (permalink)  
Antiguo 09/02/2012, 10:35
Avatar de djaevi  
Fecha de Ingreso: marzo-2007
Ubicación: Moreno, Buenos Aires
Mensajes: 400
Antigüedad: 17 años, 1 mes
Puntos: 47
Respuesta: cambiar onclick al hacer click

cuando usas set attribute tenes q poner click y sin igual xq setAttribute es una funcion, deberia ser:

setAttribute('Click','funcion()');

Si usas firefox estos errores a veces te ayuda a corregirlos la consola de errores, lo menciono xq es una herramienta que me ayuda mucho a corregir los errores de mis scripts :D

Saludos
  #3 (permalink)  
Antiguo 09/02/2012, 10:41
 
Fecha de Ingreso: marzo-2009
Mensajes: 509
Antigüedad: 15 años, 1 mes
Puntos: 17
Respuesta: cambiar onclick al hacer click

acabo de poner esto:

Código:
          document.getElementById("fav").setAttribute('Click','eliminarFav();');
pero sigue sin funcionar.

¿cómo puedo ver la consola de errores de la que hablas? suena muy interesante!! y yo uso firefox.

Gracicas!
  #4 (permalink)  
Antiguo 09/02/2012, 11:58
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: cambiar onclick al hacer click

buenas...
el atributo está mal escrito. debería ser como incialmente lo tenías, "onclick". setAttribute trabaja directamente con el elemento creando un atributo tal como lo harías en el código fuente. por tanto, "click" no es un atributo válido mientras que "onclick" lo es. aunque, puede ocurrir alguna excepción en algún navegador particular, pero estoy casi seguro que ya se debería a una mal implementación de parte del navegador. el problema inicial era que estabas asignando una expresión al método setAttribute.
Código:
.setAttribute=(...)
por otro lado, no se que tan adecuado es asignar el evento mediante setAttribute. recuerdo que -por ejemplo- iexplorer no entendía este tipo de declaración. desconozco si las versiones actuales ya esta corregido. en lo personal, no utilizaría esa metodología -aunque es funcional- más que nada porque presenta algunas limitaciones respecto al uso de otras características del lenguaje. por ejemplo, no puedes implementar closure. mi propuesta es que utilices las propiedades javascript para declarar el evento. es decir, element.onclick = function_name;.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Etiquetas: funcion, input, onclick
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 21:05.