Foros del Web » Programando para Internet » Javascript »

conocer nombre de obj que invoca funcion

Estas en el tema de conocer nombre de obj que invoca funcion en el foro de Javascript en Foros del Web. hola amigos, como puedo saber el nombre del objeto que ha llamado a una funcion, p.e. tengo 4 id's diferentes que llaman a una misma, ...
  #1 (permalink)  
Antiguo 21/04/2009, 09:49
Usuario no validado
 
Fecha de Ingreso: marzo-2007
Mensajes: 238
Antigüedad: 17 años, 2 meses
Puntos: 5
conocer nombre de obj que invoca funcion

hola amigos, como puedo saber el nombre del objeto que ha llamado a una funcion, p.e. tengo 4 id's diferentes que llaman a una misma, entonces como hago para saber quien llamo, en actionscript uso algo como this._name

Código:
<table align="center" width="540" border="0" class='tablenews'>
<!-- PRINCIPALES -->
  <tr>
    <td colspan="2">
	<div id="newscontent">Lo Principal<br /><img src="./preload_3.gif" /></div>
	</td>
  </tr>
  <tr>
    <td colspan="2">
<!-- TEMAS -->
<div id="newsthemes" style="background:#FFFFCC; display:block">
<a href="#">tema 1</a><a href="#">tema 2</a><a href="#">tema 3</a>
</div>
<!-- fin:TEMAS -->
	</td>
  </tr>
<!-- fin:PRINCIPALES -->
<!-- ITEMS -->
<tr>
<td id="item1" style="padding: .2em; width: 270px; height: 60px; border: thin solid
silver; background:#FFFFFF"
onMouseover = "this.style.borderColor = '#efefef',this.style.backgroundColor='#EFEFEF'"
onMouseout = "this.style.borderColor = 'silver',this.style.backgroundColor='#FFFFFF'">&nbsp;1
</td>
<td id="item2" style="padding: .2em; width: 270px; height: 60px; border: thin solid
silver; background:#FFFFFF"
onMouseover = "this.style.borderColor = '#efefef',this.style.backgroundColor='#EFEFEF'"
onMouseout = "this.style.borderColor = 'silver',this.style.backgroundColor='#FFFFFF'">&nbsp;2
</td>
  </tr>
  <tr>
<td id="item3" style="padding: .2em; width: 270px; height: 60px; border: thin solid
silver; background:#FFFFFF"
onMouseover = "this.style.borderColor = '#efefef',this.style.backgroundColor='#EFEFEF'"
onMouseout = "this.style.borderColor = 'silver',this.style.backgroundColor='#FFFFFF'">&nbsp;3
</td>
<td id="item4" style="padding: .2em; width: 270px; height: 60px; border: thin solid
silver; background:#FFFFFF"
onMouseover = "this.style.borderColor = '#efefef',this.style.backgroundColor='#EFEFEF'"
onMouseout = "this.style.borderColor = 'silver',this.style.backgroundColor='#FFFFFF'">&nbsp;4
</tr>
<!-- fin:ITEMS -->
</table>
aqui mi duda onclick = newinfo llamaria esta funcion, pero no se quien fue de las 4 opciones...

Código javascript:
Ver original
  1. var maxchars = 100;
  2. var frases = new Array();
  3. frases[0] = 'hola gatito. Este tema habla de este item, mas contenido lorem ipsum san dsfer fdc bdfgdvcxc';
  4. frases[1] = 'hola perrito. Este tema habla de este item, mas contenido lorem ipsum san dsfer fdc bdfgdvcxc';
  5. frases[2] = 'hola pajarito. Este tema habla de este item, mas contenido lorem ipsum san dsfer fdc bdfgdvcxc';
  6. frases[3] = 'hola mundito. Este tema habla de este item, mas contenido lorem ipsum san dsfer fdc bdfgdvcxc';
  7.  
  8. function newsinfo()
  9. {
  10. alert ('desplegar informacion en '+maxchars)
  11. }
  12.  
  13. for (i=1; i<5; i++)
  14. {
  15. contenido = frases[i-1];
  16. itemcont = (contenido.length>maxchars) ? contenido.substring(0,maxchars) : contenido;
  17. itemcont += '<br /><div style="text-align:right"><a href="#">leer m&aacute;s &gt;&gt;</a></div>'
  18. document.getElementById('item'+i).innerHTML = 'DATE , item'+i+ ': ' + itemcont;
  19. document.getElementById('item'+i).onclick = newsinfo;
  20. }
  #2 (permalink)  
Antiguo 21/04/2009, 10:12
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: conocer nombre de obj que invoca funcion

Aquí puedes encontrar información al respecto:
http://www.forosdelweb.com/f13/quien...uncion-621642/
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 21/04/2009, 11:39
Usuario no validado
 
Fecha de Ingreso: marzo-2007
Mensajes: 238
Antigüedad: 17 años, 2 meses
Puntos: 5
Respuesta: conocer nombre de obj que invoca funcion

ok entonces lo mas que puerdo conseguir es que objeto (no si id) es el que presiono?

'Div', 'span' etc con nodeName?
con un div id='uno', div id='dos', div id='tres' no consigo el id a menos que lo pase por argumento de la funcion? o como?
  #4 (permalink)  
Antiguo 21/04/2009, 12:06
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: conocer nombre de obj que invoca funcion

El nombre lo obtienes con .name, el id con .id, y el nombre del nodo con .nodeName
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 21/04/2009, 12:37
Usuario no validado
 
Fecha de Ingreso: marzo-2007
Mensajes: 238
Antigüedad: 17 años, 2 meses
Puntos: 5
Respuesta: conocer nombre de obj que invoca funcion

Oh! bien, gracias (que pena! estoy leyendo un tuto de ajax y apenas acabo de pasar ese tema de obtener .id .nodeName .name )

Muchas Gracias :) esto me sirve de maravilla
Salu2!
  #6 (permalink)  
Antiguo 21/04/2009, 13:26
Usuario no validado
 
Fecha de Ingreso: marzo-2007
Mensajes: 238
Antigüedad: 17 años, 2 meses
Puntos: 5
Respuesta: conocer nombre de obj que invoca funcion

Una consultita mas, es k me he frenado en esto, por ejemplo si ya conozco que id (this.id) estoy clickeando, quiero que este id me vacie contenido de un vector->array en un div contenedor

Bueno, asi mi:
div id=item1 debe llamar a frases[0]='Contenido referencia de item1'
div id=item2 debe llamar a frases[1]='Contenido referencia de item2'
div id=item3 debe llamar a frases[2]='Contenido referencia de item3'

Entonces pense, y como le asigno una variable al div? he hice esto y me funciona:
div id='item1' suvar='1' style='border:.....' etc...
a la etiqueta div le agregue un attr suvar donde guardo valor numerico para despues buscarlo en un array llamado frases

Bueno, me funciona esto bien, lo estoy probando en variosnavegadores, pero quisiera saber si esta es una buena forma de asignar variables, o attributos a las etiquetas del DOM?
  #7 (permalink)  
Antiguo 21/04/2009, 13:27
Usuario no validado
 
Fecha de Ingreso: marzo-2007
Mensajes: 238
Antigüedad: 17 años, 2 meses
Puntos: 5
Respuesta: conocer nombre de obj que invoca funcion

Mira cuando obtenigo el contenido estoy haciendo esto:

function alerta(ev) {
document.getElementById('newscontent').innerHTML = this.id + ', ' + frases[this.suvar-1];
}
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:28.