2011-04-01 51 views
0

我正在使用jQuery。我有一個包含JS文件(super.js):從以前加載的JS文件調用函數

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

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

「/ profile文件」 加載包含到setHash調用另一個外部JS文件(profile.js):

setHash('blabber'); 

但它不」 t似乎工作(setHash是未定義的)。

編輯:setHash從稱爲profile.js一個函數中:

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

我怎樣才能獲得「全球性」的功能在JS文件工作中包括動態加載的頁面?

感謝,阿爾伯特

+1

是'setHash'包含一個'$(文件)。就緒(函數(){})'或其他封閉內? – mVChr 2011-04-01 10:12:43

+0

是的,忘了指出來。 – alste 2011-04-01 10:15:49

回答

2

移動setHash功能$(document).ready(function(){})之外。這將使其成爲可在任何地方調用的全局函數。如果它在function(){}閉包中,則只能在該閉包中調用它。如果你和出封閉外移動的功能很多,我會推薦他們的命名空間:

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

myApp.setHash(); // invocation 
+0

mmm,從profile.js調用setHash仍'未定義'。 – alste 2011-04-01 10:18:49

+0

當使用load()方法時,瀏覽器是否加載了包含的外部JS?試着提醒()一些東西。 – Capsule 2011-04-01 10:22:55

+0

編輯:謝謝它的作品:) – alste 2011-04-01 10:24:20