Ver Mensaje Individual
  #8 (permalink)  
Antiguo 13/10/2004, 17:59
Avatar de xavivars
xavivars
 
Fecha de Ingreso: enero-2002
Ubicación: Benissa - la Marina Alta
Mensajes: 212
Antigüedad: 23 años, 2 meses
Puntos: 1
He encontrado la manera de funcionar

Código HTML:
<html>
<head>
<title>Untitled</title>
<style type="text/css">
div{width:50px;height:50px;border:1px solid blue;background-color:yellow}
</style>
<script type="text/javascript">
function ini() {
  elem=document.createElement('div');
  elem.id='div1';
  elem.onclick=function() {alert(this.id)};
  document.body.appendChild(elem);
}
</script>
</head>
<body onload="ini()">
<input type="button" onclick="document.getElementById('div1').onclick()">
</body>
</html> 
Esto, aunque funciona, no es porque el HTMLDivElement tenga un metodo onclick(), sino porque tu antes lo has definido.

Así, si haces

Código HTML:
<html>
<head>
<title>Untitled</title>
<style type="text/css">
div{width:50px;height:50px;border:1px solid blue;background-color:yellow}
</style>
<script type="text/javascript">
function ini() {
  elem=document.createElement('div');
  elem.id='div1';
  elem.nombrequetuquieras=function() {alert(this.id)};
  document.body.appendChild(elem);
}
</script>
</head>
<body onload="ini()">
<input type="button" onclick="document.getElementById('div1').nombrequetuquieras()">
</body>
</html> 
funcionará lo de que cuando aprietes el boton se ejecute la funcion nombrequetuquieras() del div.

Jugando con esto, si le pones a nombrequetuquieras() el nombre de onclick() estas matando dos pajaros de un tiro: si pulsas directamente sobre el div, estas llamando al evento "onclick" que tiene la etiqueta DIV de html, en cambio si pulsas sobre el boton, se esta ejecutando el metodo onclick() QUE TU ACABAS DE CREAR en el objeto "elem" (del tipo HTMLDivElement).

Espero que me entiendas (no se ni siquiera si me entiendo yo...)