とアヤックスにロードされたHTMLファイルにJavascriptの依存関係を追加します(私の問題を確認するために、ポストの一番最後に確認してください)私がやろうとしているものです:は、ここでのjQuery
私は2つのhtmlファイルを持っています: index.htmlとmodal.html。そして、2つのjavascriptファイル:script.jsとmodal.js
私はmodal.htmlをindex.htmlにロードし、modal.htmlをロードするときにのみmodal.jsをロードしたいと思います。
これは実際には動作しますが、modal.jsをmodal.htmlに対してのみ動作させることは可能です(特定のコントローラのように動作させる)?または、modal.jsをアンロードすることは可能ですか?
以下の私のコードあなたは私の問題を理解することができるように:
Index.htmlと
<a href="modal.html" class="open-modal">Open a modal</a>
<a href="" class="specific-action">Both on index.html and modal.html</a>
<script src="js/script.js"></script>
modal.html
<div class="modal-content">
<h2>My Modal</h2>
<a href="" class="specific-action">Both on index.html and modal.html</a>
<a href="" class="close-modal">close the modal</a>
</div>
script.js
$(".open-modal").click(function(e){
e.preventDefault();
var modalURL = $(this).attr("href");
$("body").prepend($("<div/>").attr("id", "modal-container-global"));
$("#modal-container-global").load(modalURL, function(response, status, xhr){
if(status == "success"){
$.getScript("js/modal.js");
}
});
})
modal.js
$(".specific-action").click(function(e){
e.preventDefault();
console.log("testing");
})
$(".close-modal").click(function(e){
e.preventDefault();
$("#modal-container-global").remove();
})
このコードは動作しますが、私は3つの問題を持っている:
- インデックスの両方を動作し、それが可能モーダル=>です
.specific-action
ボタンそれはモーダルのためだけに機能するように? script.jsの - 私はmodal.htmlを読み込むたびにmodal.jsを読み込みます。 modal.jsはmodal.htmlでは機能しません。大規模なスクリプトではDOMが変更された後に変更されているため、パフォーマンスには影響しますか?
- モーダルを削除すると、modal.jsはまだアクティブです。このファイルを削除する方法や、非アクティブにする方法はありますか?
これに関するニュースはありますか? – DontVoteMeDown
いいえ、私は実際に行うべき最良のことは、各ビューに対して特定のコントローラを持つことができるJavascriptフレームワークを使用することだと思います。 これは私が通常行っていることですが、このプロジェクトではそうではないので、私はこの質問をしました。しかし、私はそれが簡単ではないと思う、私がこの問題について読んだことは、あなた自身のMVC JSフレームワークを作成することでした。だから、既存のものを使うのは、私の意見では最高の解決策です。また、それはあなたが持っている必要があります良いJSの構造を持つことができます。 – Timtest