使用jQuery在单个load语句中调用多个文件中的函数

我正在尝试使用jQuery实现最基本的包含 ,即在DOM准备就绪时从多个文件加载函数,但显然结果并非如此简单:

的index.html

    $(document).ready(function(){ alert("Hello world!"); foo(); bar(); });  

scripts.js中

 function foo(){ alert("Hello from foo!"); } function bar(){ alert("Hello from bar!"); } 

alert("Hello world!"); 是唯一按预期执行的语句。 检查文件夹位置,与之前的策略( window.attachEvent )一起使用

我已经尝试将.ready()语句移动到scripts.js文件中,但这没有多大帮助。

我真的很感激任何建议。 非常感谢提前。

UPDATE

目前我正在以这种方式处理加载函数:

 // Based on "Flexible JavaScript events" by John Resig: http://goo.gl/xLn4S function addEvent( obj, type, fn ) { if ( obj.attachEvent ) { obj['e'+type+fn] = fn; obj[type+fn] = function(){obj['e'+type+fn]( window.event );} obj.attachEvent( 'on'+type, obj[type+fn] ); } else obj.addEventListener( type, fn, false ); } function removeEvent( obj, type, fn ) { if ( obj.detachEvent ) { obj.detachEvent( 'on'+type, obj[type+fn] ); obj[type+fn] = null; } else obj.removeEventListener( type, fn, false ); } addEvent(window, 'load', foo); addEvent(window, 'load', bar); 

$(document).ready()在dom完成后执行,这可能在下载外部javascript文件之前发生,因此foo和bar可能尚未定义。

我认为这只是一个错字。 警报没有改变

 function foo(){ alert("Hello from foo!"); } function bar(){ alert("Hello from bar!"); } 

像Firebug这样的工具可以帮助解决这类问题。

首先,在用于检索javascript的url中添加唯一编号,如下所示:

  

确保浏览器检索最新版本的scripts.js。 然后,每次检索页面时,都会生成一个新的唯一版本号。 (至少在开发期间)

接下来,在尝试调用其函数之前,需要确保已加载并正确评估了script.js。

执行此操作的一种方法是在script.js的底部触发一个新的自定义事件,您可以在其上设置要执行的处理程序(在document.ready()中)。

另一种方法是在尝试调用其任何函数之前在document.ready()处理程序中加载脚本。

编辑添加示例: