パーシャルビューの.hide関数は、第2人と第3人のためにレンダリングされていないため、遅延.hideと.fadeinは動作しません。私はjsとjqueryを初めて使っているので、明らかに何かが欠落しています...なぜこのjsスクリプトが部分的なビューの中で動作しないのでしょうか?MVCパーシャルビューでjQuery関数が動作しない
すべてがメインビューにあるときに機能しますが、15秒ごとにページ全体をリロードする必要がないため、部分的な表示が必要な理由があります。私はいくつかの研究を行ってきましたが、htmlデータ型を取得するのに何か問題がありますか?
メインビュー:
@model IEnumerable<project.Models.MyList>
<div id="scrolllist">
@Html.Partial("_ScrollList")
</div>
@section Scripts{
<script>
function loadScrollListPV() {
$.ajax({
url: "@Url.Action("ScrollList")",
type: 'GET', // <-- make a async request by GET
dataType: 'html', // <-- to expect an html response
success: function(result) {
$('#scrolllist').html(result);
}
});
}
$(function() {
loadScrollListPV();
// re-call the functions each 15 seconds
window.setInterval("loadScrollListPV()", 15000);
});
</script>
}
コントローラーアクション:
public ActionResult ScrollList()
{
return PartialView("_ScrollList", db.MyList.ToList());
}
部分ビュー:事前に
@model IEnumerable<project.Models.MyList>
<div id="firstperson">
@*Get lastest record and display.*@
@foreach (var donor in Model.OrderByDescending(p => p.ProcessTime).Take(1))
{
}
</div>
<div id="secondperson">
@*Get second lastest record and display.*@
@foreach (var donor in Model.OrderByDescending(p => p.ProcessTime).Skip(1).Take(1))
{
}
</div>
<div id="thirdperson">
@*Get third lastest record and display.*@
@foreach (var donor in Model.OrderByDescending(p => p.ProcessTime).Skip(2).Take(1))
{
}
</div>
@section Scripts{
<script>
$("#secondperson").hide();
$("#thirdperson").hide();
function person() {
$("#firstperson").delay(5000).hide(0, function() {
$("#secondperson").fadeIn();
$("#secondperson").delay(5000).hide(0, function() {
$("#thirdperson").fadeIn();
$("#thirdperson").delay(5000).hide(0, function() {
$("#firstperson").fadeIn();
person();
});
});
});
}
</script>
}
すべてのヘルプは素晴らしいだろうと感謝!
あなたの理由に変更する必要がありますそれをテストしたい場合はFIDDLEだ欠陥があります。あなたのajax成功ハンドラは、 '#scrolllist'の内容を置き換えるだけなので、あなたはページを再読み込みしていないパーシャルビューの有無にかかわらず。さらに、パーシャルビューはhtmlストリームにレンダリング(挿入)されます。ブラウザーに関する限り、マークアップに違いはありません。おそらく、MVCのパーシャルビューとWebFormのUpdatePanelを混同しているかもしれません。 –
@adigaありがとう!私は実装し、素晴らしい作品です。 – Alex
スクリプトは決して部分的に実行されません。とにかく '@section Scripts {'は部分的にはサポートされていません。 –