私は現在、自分のJSを複数のスクリプトに分割しています。すべてはjs/script
ディレクトリにあります。各スクリプトは、次の例に類似の構造を有する:他のスクリプトでrequire.jsに切り替えた後にonLoadイベントが発生しない
var game=(function(){
//inner functions here, i.e.:
function _tick(){
return "something";
}
function _server_time(){
return "something else";
}
window.addEventListener('load',function(){
console.log("happening?");
});
var _ext={
tick:_tick,
server_time: _server_time
};
return _ext;
})();
機能がgame.tick
またはgame.server_time
を呼び出すことにより、上記の機能にアクセスします。どこにでもグローバルなバールはありません。
今度はrequire.js
ベースのアーキテクチャに切り替える必要があります。
だから私はこれを含ま:
<script data-main="/js/main" src="/js/require.js"></script>
js/main.js
は現在、次のとおりです。
requirejs(["scripts/app"], function(app) {
console.log(app);
});
そしてscripts/app.js
に私が持っている:
define(function (require) {
var game = require('./game');
});
は今、game.tick
とgame.server_time
機能が用意されています、しかし、私は問題がありますgame.js
のコードwindow.load
は発砲しません。
誰でも手助けできますか?
私はちょっと前にdomReadyを見つけて試していましたが、[この質問](http://stackoverflow.com/questions/29596886/window-onload-not-calling-function)の指示に従うと、私は['main']が何らかの理由で '/ scripts/main'として読み込まれていて存在しません(正しいパスは/ js/scripts/mainですが、私はそれを試してもまだ動作しません)。 – jovan
とにかく '$(document).ready'に切り替えるだけで、そのトリックはありがたいです。 – jovan