javascript - 从先前加载的 JS 文件调用函数

标签 javascript jquery

我正在使用 jQuery。我有一个 JS 文件 (super.js),其中包含:

$("#content").load("/profile");

function setHash(hash) {
   location.hash = "#/:-)/"+hash;
}

“/profile”加载另一个外部 JS 文件 (profile.js),其中包含对 setHash 的调用:

setHash('blabber');

但它似乎不起作用(setHash 未定义)。

编辑:setHash 是从 profile.js 中的函数内调用的:

function changePage(type) {
    setHash('bla/'+type);
}

如何让“全局”函数在动态加载页面中包含的 JS 文件中工作?

谢谢,艾伯特

最佳答案

setHash 函数移至 $(document).ready(function(){}) 之外。这将使其成为可以在任何地方调用的全局函数。如果它位于 function(){} 闭包内,则只能从该闭包内调用它。如果您将许多函数移到闭包之外,我建议对它们进行命名空间:

var myApp = {};
myApp.setHash = function() { 
                  // your code 
                };

myApp.setHash(); // invocation

关于javascript - 从先前加载的 JS 文件调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5511919/

相关文章:

javascript - 如何更好地处理 Canvas 游戏中的玩家移动?

CKEditor 中的 JavaScript

javascript - 如何通过JS获取表单中输入的内容?

javascript - 无法清除文件输入

javascript - 创建自动滑动div的水平列表

javascript - 在 laravel 中使用 ajax 更改状态

javascript - 比 iframe 更好的替代品来显示选项卡内容?

javascript - 多人/访客与 Ruby on Rails 的交互?

javascript - 仅在提交后禁用提交按钮

javascript - jQuery AJAX 请求仅发送第一个表单,忽略其他表单