我正在使用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