Foros del Web » Programando para Internet » Javascript »

comportamiento raro de una referencia this

Estas en el tema de comportamiento raro de una referencia this en el foro de Javascript en Foros del Web. Estimados, me dirijo a ustedes en esta ocasión puesto que se me ha presentado un problema que me parece rarísimo y la verdad no se ...
  #1 (permalink)  
Antiguo 07/05/2012, 11:24
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 21 años, 5 meses
Puntos: 16
comportamiento raro de una referencia this

Estimados, me dirijo a ustedes en esta ocasión puesto que se me ha presentado un problema que me parece rarísimo y la verdad no se si alguien me pudiese explicar porque pasa. Resulta que lleno una tabla dinámicamente con PHP y en la última columna pongo una opción para eliminar la fila correspondiente, esto lo hago de la siguiente manera:

Código:
function borraFila(id) {
    id.parentNode.removeChild(id);
}
y el llamado lo hago de la siguiente manera:

Código:
borraFila(this.parentNode.parentNode)
this, es la etiqueta a, el padre es la etiqueta td y el padre de esta a su vez es tr que es lo que quiero eliminar, hasta ahí todo perfecto, el problema se me presenta cuando pongo la llamada en el atributo href de la etiqueta a, es decir

Código:
<a href="javascript: borraFila(this.parentNode.parentNode)">borrar</a>
En este caso el this toma la referencia al elemento window y no se porque, de hecho this.parentNode.parentNode no toma valor puesto que window es el nodo padre de todo el árbol DOM según entiendo.

En este momento la llamada al javascript la hago mediante el evento onClick de la etiqueta a, es decir,

Código:
<a href="#" onClick="javascript: borraFila(this.parentNode.parentNode)">borrar</a>
Y de esta forma this si toma la referencia a la etiqueta a.

Mi pregunta es, porque poniéndolo en el href no me toma bien la referencia? y poniéndola en onClick si? de hecho lo que más raro me parece es que en otros sitios de la aplicación si hago el llamado mediante el atributo href y funciona a la perfección.

Bueno maestros, espero sus respuestas,

Se despide con un saludo cordial,

Atte. Metallick
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #2 (permalink)  
Antiguo 07/05/2012, 11:56
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: comportamiento raro de una referencia this

Ese es el comportamiento normal, javascript:, no es un evento propio de javascript sino un pseudoprotoclo, se ejecuta en un contexto global y hace referencia al objeto window, en cambio onclick refiere al propio nodo sobre el que se ejecuta.

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Última edición por emprear; 08/10/2012 a las 21:16
  #3 (permalink)  
Antiguo 07/05/2012, 15:58
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: comportamiento raro de una referencia this

la respuesta de emprear es la razón. por yendo mas lejos, que sentido tiene usar un link que no va a cumplir su función natural?? lo semánticamente correcto es usar <span> y aplicarle css para maquillarlo como si fuera un link
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}

Etiquetas: comportamiento, funcion, php, raro, referencia
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 14:19.