Foros del Web » Programando para Internet » Javascript »

Asignar funciones a elementos

Estas en el tema de Asignar funciones a elementos en el foro de Javascript en Foros del Web. Hola buen dia, Tengo el siguiente problema: Sucede que estoy agregando <tr> a una tabla con javascript y a cada <tr> le asigno un id ...
  #1 (permalink)  
Antiguo 12/02/2009, 08:24
 
Fecha de Ingreso: febrero-2009
Mensajes: 3
Antigüedad: 16 años
Puntos: 0
Asignar funciones a elementos

Hola buen dia, Tengo el siguiente problema:

Sucede que estoy agregando <tr> a una tabla con javascript y a cada <tr> le asigno un id (por ejemplo id="P|43" ), luego, a cada <tr> le asigno ondblclick = function() { MostrarDatos(tr.id) }, esto es para que cuando el usuario haga doble click en un <tr> se ejecute MostrarDatos(), hasta aquí todo bien "PERO" resulta que solo me toma en cuenta el útlimo <tr> que agregé y no importa a cual le de dbl-click me manda solo el último.

el código que tengo es mas menos así:

function crearTR() {
proceso = ocument.getElementById("select1").options[document.getElementById("select1").selectedIndex].value
tr1 = document.createElement("tr");
td1 = document.createElement("td");
tr1.id = "P|" + proceso;
document.getElementById("tabla1").appenChild(tr1);
tr1.appendChild(td1);
tr1.ondblclick = function() { MostrarDatos(tr1.id); }
// No importa que en lugar de tr1.ondblclick ponga document.getElementById(tr1.id)
}

function MostrarDatos(tr) {
alert(tr);
}
-->
html:

<select id='select1' onChange='crearTR()'>
<option value='1'>UNO</option>
<option value='2'>DOS</option>
</select>

<table id='tabla1'>
</table>

¿Alguna idea o sugerencia para que el ondblclick mande el <tr> correcto y no el último?

saludos y muchas gracias.

S.Ortega
  #2 (permalink)  
Antiguo 12/02/2009, 08:56
 
Fecha de Ingreso: enero-2008
Mensajes: 614
Antigüedad: 17 años, 1 mes
Puntos: 57
Respuesta: Asignar funciones a elementos

Trata cambiando esta linea:

Código:
tr1.ondblclick = function() { MostrarDatos(tr1.id); }
por esto

Código:
tr1.ondblclick = function() { MostrarDatos(this.id); }
  #3 (permalink)  
Antiguo 12/02/2009, 09:03
 
Fecha de Ingreso: febrero-2009
Mensajes: 3
Antigüedad: 16 años
Puntos: 0
Respuesta: Asignar funciones a elementos

noup,,,, con this.id hace lo mismo.... gracias.
  #4 (permalink)  
Antiguo 12/02/2009, 10:17
 
Fecha de Ingreso: agosto-2008
Mensajes: 271
Antigüedad: 16 años, 6 meses
Puntos: 2
Respuesta: Asignar funciones a elementos

Hola sortegas

Intenta con esto.

JAVASCRIPT
Código:
function crearTR(cellID)
{
  // obtenemos acceso a la tabla por su ID
  var TABLE = document.getElementById("tabla1");
  // obtenemos acceso al TBODY
  var TBODY = document.getElementsByTagName("tbody")[0];
  // creamos una nueva fila
  var newRow = TBODY.insertRow(-1);
  // creamos una nueva celda
  var newCell = newRow.insertCell(newRow.cells.length)
  //Asignamos a la nueva celda un id
  newCell.id = 'tr_' + (cellID);
  //asignamos a la celda el evento ondblclick
  newCell.ondblclick = function() { MostrarDatos(newCell.id); }
  // creamos un nuevo control
  txt = '<span id="' + newCell.id  + '"  />' + newCell.id + '</span>';
  // y lo asignamos a la celda
  newCell.innerHTML = txt
  // aviso
//  alert(txt)
}
HTML

Código:
<select id='select1' onChange='addNewRow(this.value)'>
<option value='1'>UNO</option>
<option value='2'>DOS</option>
<option value='3'>TRES</option>
</select>
MOSTRAR DATOS : JAVASCRIPT

Código:
function MostrarDatos(tr) {
alert(tr);
}
Saludos
Espero te sirva

Fenris
  #5 (permalink)  
Antiguo 12/02/2009, 10:42
 
Fecha de Ingreso: febrero-2009
Mensajes: 3
Antigüedad: 16 años
Puntos: 0
Respuesta: Asignar funciones a elementos

Gracias Fenris, tal cual lo necesito, ya lo probé y funcionó.

Saludos.
S.Ortega
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 22:16.