在另一个.js文件中调用javascript方法

时间:2011-04-26 04:24:54

标签: javascript jquery

将函数从一个js调用到另一个js的规则是什么?我认为这有效但我没有遇到问题(通过firefox计算出来),我的第一个js文件中似乎没有识别出另一个js文件中的函数。

是否有一些关于订购的规则或者你需要做些什么才能让它发挥作用?

3 个答案:

答案 0 :(得分:31)

必须可以在全球范围内访问它。例如:

// file1.js
function hello() {
    alert("Hello, world!");
}
// file2.js
$(function() {
    hello();
});

可能,你有类似的东西:

// file1.js
$(function() {
    function hello() {
        alert("Hello, world!");
    }
    // ...
});
// file2.js
$(function() {
    hello();
});

hello仅在file1.js中定义的闭包范围内。因此,要在file2.js中访问它,您必须将其导出到file2.js可以获取的位置:

// file1.js
$(function() {
    function hello() {
        alert("Hello, world!");
    }
    window.hello=hello;
});
// file2.js
$(function() {
    hello();
});

此外,必须先加载,解析和执行定义函数的脚本,然后才能从另一个脚本调用该函数。

答案 1 :(得分:7)

您是在事件处理程序中调用该函数,还是在加载javascript文件时立即调用该函数?如果它不在事件处理程序中,那么加载顺序很重要。如果您有循环依赖关系,则可能需要使用“DOM ready”或window.onLoad侦听器来延迟某些初始化。

答案 2 :(得分:3)

浏览器按照它们在HTML中出现的顺序解析javascript文件。因此,如果第一个文件中的某个函数依赖于第二个文件中的函数,它将无法工作。如果你使用$(function(){});例如,使用jQuery,这是指示javascript等待从窗口对象触发onload事件。这可确保在执行之前加载页面上的所有元素。