Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/08/2009, 12:39
atribis
 
Fecha de Ingreso: abril-2006
Ubicación: De vuelta en Asturias
Mensajes: 209
Antigüedad: 18 años
Puntos: 1
error "no es una función"

Muy buenas.

Me he encontrado con un problema un tanto raro al trabajar con un archivo externo .js y por más que he buscado una solución no consigo encontrarla, así que me he decidido a consultar aquí, que está lleno de expertos

Estoy trabajando sobre un archivo .php donde, entre otras cosas, recojo unos datos de una base de datos, creo un menú y mi intención es que al hacer clic sobre cada opción, se cambié la imagen mostrada.

Hasta aquí todo va muy bien pero aquí llega el pero. Cuando añado el onclick al enlace correspondiente, el cual llama a una función colocada en un archivo .js externo, el firebug me dice que dicha función no está definida.

Algo está mal escrito verdad? Pues no, porque si la llamada la hago desde le propio archivo .js o copio la función en el archivo .php entonces funciona bien. De hecho he añadido varios eventos en dicho archivo .js (trabajo con mootools y lo hago mediante $().addEvent) y todo funciona correctamente.

Pensé en crear un array con los datos obtenidos de la consulta a la base de datos y añadir los eventos mediante un bucle for (no sé el nº de elementos que voy a tener en cada caso, por eso no puedo hacerlo directamente), pero en ese caso solamente funciona el del último elemento.

Y antes de seguir buscando soluciones raras, pensé en preguntar si alguien conoce la razón por la que no se reconocen las funciones cuando las llamo desde el archivo .php

la llamada la hago así: <a href="#" onclick="funcion();">... (he probado con el punto y coma (;) y sin él)
y la función la declaro en el js: function funcion(){...}

Espero que a alguien se le ocurra a que puede ser debido, o una solución para poder añadir los eventos.

Un saludo y gracias de antemano