error indefinido al llamar a la function desde otro js sourcefile

Tengo una pregunta que se refiere a llamar a una function dentro de otro js sourcefile.

Decidí el file de origen antes del file con la function que llama a esa function en particular. Pensé que esto funcionaría, pero da un error indefinido.

También tengo una function en un file que llama a una function en un file de origen declarado posteriormente. Eso se referiría a los mismos files, pero al revés.

Las funciones se declaran entre declaraciones lists para el documento (funciones).

¿Hay alguna manera de evitar el error indefinido?

así es como lo configuré:

<script type="text/javascript" src="includes/livetabs.js"></script> <script type="text/javascript" src="includes/chat.js"></script> //this is in the chat.js file $(document).ready(function(){ function chatWith(chatuser) { check=iscookieUsername(); if (!check){ chatusersuspended=chatuser; showchatinlogform(); } createChatBox(chatuser); $("#chatbox_"+chatuser+" .chatboxtextarea").focus(); } }); //this is in the livetabs.js file $(document).ready(function(){ function iscookieUsername(){ if (!tbusername){ return false; } if (issessionusername){//flag if session has already been set return true; } $.ajax({ url: "includes/livetabs.php", data: ({username: tbusername, action: "setsessionusername"}), cache: false, type: "POST", dataType: "json", success: function(data) { //store username in php session //some personal user preferences returned usernamecookie=data.cookie; trackuser=data.track; issessionusername=1; }}); return true; } }); 

Gracias, Richard

Si ha definido su function dentro de la llamada al método $ (documento) .ready, no será visible desde el exterior. Intente definirlos fuera de la llamada al método listo.

 $(document).ready( function() { var test = function() { alert('test'); }; test(); //It will work here. anotherTest(); //This will also work. } ); function anotherTest() { alert('anotherTest'); }; test(); //You can't call test function here because test is defined inside the anonymous function passed to the 'ready' method. anotherTest(); // Alerts 'anotherTest'. 

Si esta no es la forma en que se presenta su código, publique su código fuente para que se pueda identificar el problema.

Es probable que su primer file fuente, el que contiene la function que desea llamar, tenga un error de syntax que impida que la function esté disponible.

Además, no importa en qué order se carguen sus files, la function estará disponible de todos modos. Ejemplo:

 function foo() { alert('foo!'); } foo(); bar(); function bar() { alert('bar!'); } 

Editar: parece que SolutionYogi pnetworkingijo la respuesta correcta. Pero como reference, dejaré la mía.

Usa google chrome y presiona F12 para ver las herramientas de desarrollo antes de navegar por esa página en particular. En la networking puede ver qué files están cargados busque su script que contiene su function. . (También puede filtrar en Scripts) debe estar en la parte superior y su script de llamada debe cargarse más tarde. Si no está cargado, incluya ese file en su página antes. Espero que eso solucione el problema.