我在兩個文件js,file1和file2中定義了一些函數。在每個文件中,所有功能都在$(document).ready(function(){});
之內。我仔細地將file1放在一個php文件中,然後在file2中調用file1中的一個函數,但是控制檯返回未定義的函數。這裏有什麼問題?如何在獨立文件js中調用函數?
0
A
回答
1
如果函數是在文檔就緒處理程序中定義的,那麼它們只存在於該範圍內,並且在其他地方無法訪問。
最簡單的解決辦法是定義您的文檔準備處理以外的功能和使用他們準備好處理程序內或在彼此內:
文件1:
function myFunc() {
myOtherOtherFunc();
}
$(document).ready(function() {
myOtherFunc();
});
文件2:
function myOtherFunc() {
}
function myOtherOtherfunc() {
}
$(document).ready(function() {
myFunc();
});
應該指出的是,這將函數放在全局範圍內,並且這應該保持在最小限度,所以如果您發現有很多需要在文件之間共享,您應該考慮使用命名空間或甚至是像模塊加載器一樣更復雜(例如, require.js)。
-1
$(document).ready應該在html頁面上調用。我建議你將各個js文件中的函數分開,並從page.ready中調用這些函數。我認爲這應該可以解決問題。
0
因爲你在另一個函數中定義你的函數,所以它們不是全局變量。這是一個好的的事情。
有幾個方法可以解決這個:
讓他們的全局(BLECH),或
使用AMD機制像RequireJS,或
使用單全球,提及您的所有功能
這最後看起來像這樣:
var MyApp = MyApp || {};
$(document).ready(function() {
MyApp.myFunction = function() {
// ...
};
});
然後你就可以通過MyApp.myFunction()
從任何地方調用它們。
相關問題
- 1. 如何獨立調用函數?
- 2. 如何在獨立類中調用函數?
- 3. 獨立文件中的函數實現
- 4. 如何在獨立的.vbs文件中從VBScript調用DotNetFactory?
- 5. 從獨立的CPP文件調用函數/變量
- 6. 如何在.js文件中從.html調用JavaScript函數
- 7. 如何在server.js文件中調用其他js函數?
- 8. 如何在Metro應用中的另一個js文件中調用js函數?
- 9. 如何在HTML中調用JS函數
- 10. 2 window.onload在2個獨立的.js文件中,只有1個函數加載
- 11. ng-repeat在JSON文件中的兩個獨立數組Angular JS
- 12. 如何從功能文件中的單獨類調用函數?
- 13. 在python中獨立使用sage函數
- 14. 如何調用JS函數
- 15. 如何從後面的代碼中調用JavaScript函數,該函數位於單獨的.js文件中?
- 16. 在外部js文件中調用js函數
- 17. 在.js文件的html中調用js函數
- 18. 如何在html中使用onload事件來調用js文件中的函數
- 19. Magento 2:如何調用js函數在我的Requirement.js文件中,從phtml文件
- 20. 如何從POST中的另一個js文件調用函數?
- 21. 如何調用extern .js文件中的函數?
- 22. 如何調用外部js文件中的函數?
- 23. 如何從另一個JS文件中調用Javascript函數
- 24. 在.js文件中調用html文件中聲明的js函數
- 25. 在許多其他JS文件中調用一個JS文件中的函數
- 26. getJSON回調函數沒有在js文件中調用
- 27. 兩個獨立組件如何在angular2 js中彼此交談?
- 28. 從php文件調用js函數
- 29. 從erb文件調用js函數
- 30. 調用外部js函數文件
謝謝JLRishe。我很愚蠢,我忘記了範圍。 – PMH 2015-03-08 18:07:52