これが私のHTMLとjQueryのスニペットです。
<div id="navigator">
<div class="breadcrumb">
<a href="#">Competitors</a>
</div>
<div class="video-browser">
<div class="folder">
<a id="221" class="accessor">
<img src="/assets/images/folder.png" />
<span>Aron#1</span>
</a>
</div>
<script type="text/javascript">
$("a.accessor").click(function(event) {
var cId = this.id;
$.get("/video/" + cId)
.done(function(data){
$("#navigator").html(data);
})
.fail(function(data) {
alert("An error occured during request. Please try again later!");
});
});
</script>
</div>
</div>
ご覧のとおり、応答が来ると、jquery はHTMLコンテンツを置き換えますが、それ自体を他のスクリプトに置き換えます (これは、応答としてのjQuery要求からのものです)。まず、ビューページでこれを取得します。問題は、HTMLソースを見ると、HTMLとスクリプトが変更されていないことです。さらにクリックすると、奇妙な動作が発生することがわかります。
私がやっていることが良いかどうか誰か教えてもらえますか? はいの場合、私のスクリプトの問題は何ですか?
ありがとう。
EDIT1:
現在のHTMLコンテンツを置き換える応答は次のとおりです。
<div class="breadcrumb">
<a href="/video">Competitors</a>
<span>></span>
<a href="#">Aron#1</a>
</div>
<div class="video-browser">
<div class="folder">
<a id="261_241" class="accessor">
<img src="/assets/images/movie_file.png" />
<span>test</span>
</a>
</div>
<script type="text/javascript">
$("a.accessor").click(function(event) {
var compId = this.id.substring(0, this.id.indexOf("_"));
var movieId = this.id.substring(this.id.indexOf("_") + 1);
$.get("/video/" + compId + "/" + movieId)
.done(function(data){
$("#videoPlayerDiv").html(data).html();
})
.fail(function(data) {
alert("An error occured during request. Please try again later!");
});
});
</script>
</div>