如何从另一个JS文件调用jQuery函数

时间:2014-05-12 15:20:54

标签: javascript jquery

我有以下main.js

$(document).ready(function() {
  $.getScript('another.js', function() {
    another();
  });
});

...以及以下another.js

$(function another() {
  $('section#my-section').after('<a href="#">my link</a>');
});

目录结构如下:

+ my.html
+ js
  +--- main.js
  +--- another.js
永远不会调用

another()。为什么?有人能指出我正确的方向吗?

谢谢!

2 个答案:

答案 0 :(得分:4)

您已使用函数表达式定义another并将其传递给$()

你需要让它成为一个全球性的。

因为你在包含它之后调用它,你可能不需要将它传递给$(),所以只需要摆脱它周围的包装,它将是一个函数声明(和全球性的。

答案 1 :(得分:1)

很少有事情需要考虑:

首先,你不能在main.js中调用另一个(),因为它包含在$()中并且在全局范围内不可用。所以你需要删除另一个();

因此another.js中的代码就像

function another() {
  $('section#my-section').after('<a href="#">my link</a>');
}

然后,如果您使用Chrome浏览器在本地测试,则可能无效。

因为 chrome 不支持本地ajax调用,它会提供XMLHttpRequest cannot load

无论如何,在firefox和其他浏览器中它都可以正常工作。

您需要在main.js

之后加载jquery

我已经使用firefox在本地测试了你的代码,它工作正常。