私はかなり簡単jquery.Itsを使用してdivの内側にAJAXを介して外部のHTMLをロードします。しかし私の場合、htmlには多くのスクリプトとCSSタグがあり、htmlがロードされるとすぐに$.ajax().done()
イベントが発生しますが、タグのロードが完了するのを待たず、したがってこれらのタグに依存するjsコードが失敗します。
目的:この質問の
目的はhtmlとそのタグは、このようなケースでは、完全にロードされたときを知るために使用することができる任意event
があるかどうかを知ることです。
以下の例は、私の問題を説明するサンプルです。 jquery-uiをインデックスに移動するようにアドバイスしないでください。これは問題を説明するためのものです。 index.html
の実行中にコンソールでエラーが表示されることがあります。TypeError: $(...).draggable is not a function
まだバックグラウンドでロードされているためです。
のindex.html:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Load remote content into object element</title>
<script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
</head>
<body>
<div id="siteloader">loading ...</div>
<script>
$(function() {
$.ajax({
type: 'GET',
dataType: 'html',
url: 'dynamic.html'
}).done(function(html) {
$("#siteloader")
.html(html);
//draggable fails here
$("#draggable").draggable();
});
});
</script>
</body>
</html>
dynamic.html:(あなたはAJAXを呼び出しているところから)あなたの最初のページで
<h1>Dynamic HTML</h1>
<h2>with big js css files</h2>
<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.0/themes/base/jquery-ui.css">
<style>
.demo-description {
clear: both;
padding: 12px;
}
.ui-draggable,
.ui-droppable {
background-position: top;
}
#draggable {
width: 150px;
height: 150px;
padding: 0.5em;
}
</style>
<div id="draggable" class="ui-widget-content">
<p>Drag me around</p>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/4.2.2/d3.js" type="text/javascript">
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.2.5/ace.js" type="text/javascript">
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.18.2/codemirror.js" type="text/javascript">
</script>
<script src="https://code.jquery.com/ui/1.11.4/jquery-ui.js" type="text/javascript">
</script>
<script>
$(function() {
console.log('Dynamic html loaded');
});
</script>
プットで見ることができ、 '$( "#ドラッグ")()ドラッグ;。代わりに' index.html'ためのdynamic.html' 'で'あなたは 'dynamic.html'のjquery-uiをロードしています –
目的は私が使用できるイベントがあるかどうかを知ることです、jqueru-uiの使用法は単なる例です。ロジックなどのjsファイルにすることができます – django