Ver Mensaje Individual
  #7 (permalink)  
Antiguo 02/05/2009, 09:56
Avatar de David
David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Malas costumbres que deberían evitarse

Volviendo a este tema después de un rato:
Descripción: Uso de cadenas de texto como código.
Este error es frecuente al trabajar con setTimeout() o setInterval() o hasta al asignar funciones para manejar ciertos eventos (usando setAttribute(), con el consiguiente problema de que tampoco funciona en todos los navegadores).
Código Incorrecto:
Código Javascript:
Ver original
  1. setTimeout("funcion()", 1000);
Código Javascript:
Ver original
  1. elemento.setAttribute("onclick", "funcion()");
Solución: Asignar directamente la función que corresponde, en el caso de los eventos usar los métodos addEventListener y attachEvent.
Código Javascript:
Ver original
  1. setTimeout(funcion, 1000);
Código Javascript:
Ver original
  1. function addEvent(elem, evt, fn, capture) {
  2.     if (elem.addEventListener) {
  3.         elem.addEventListener(evt, fn, capture);
  4.     } else if (elem.attachEvent) {
  5.         elem.attachEvent('on' + evt, fn);
  6.     }
  7. }
  8. addEvent(elemento, 'click', funcion, false);
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.