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

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

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


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

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

09-19 01:06