現在、私はjavascriptで名前空間を扱っています。最初のステップとして、テスト ページを作成します。
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Namespace</title>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script type="text/javascript">
var NSVB = NSVB || {};
NSVB.sub = {
init: function(){
alert("NSVB rocks");
$("#click-test").bind("click",NSVB.sub.clicktest());
},
clicktest: function(){
alert("clicked");
}
}
NSVB.sub.init = function(){
alert("NSVB rocks overwirtten");
$("#click-test").bind("click",NSVB.sub.clicktest());
}
$(document).bind("load", NSVB.sub.init());
</script>
</head>
<body>
<p id="click-test">click to test</p>
</body>
</html>
私のコードに期待することは次のとおりです。
- 関数 init() と clicktest() で名前空間を定義します
- 関数 init() を上書きします
- クリックしたときに #click-test でクリック イベントを処理する
私のコードは何をしますか:
- 関数 init() と clicktest() で名前空間を定義します
- 関数 init() を上書きします
- clicktest() を呼び出す
- クリックしても何も起こりません!!
本当にわからない!誰かが助けてくれることを願っています。
前もって感謝します。
編集
いくつかのテストの後、次のことを行いました。
括弧を削除
$("#click-test").bind("click",NSVB.sub.clicktest);
交換
$(document).bind("load", NSVB.sub.init);
と(そのうちの1つ、あなたが使いたいもの)
document.addEventListener("DOMContentLoaded",NSVB.sub.init,false);
また
$(document).ready(function(e) {
NSVB.sub.init();
});
すべてが正常に動作し、期待どおりです!