jQueryモバイルを使用してAsp.net mvcでネストされたリストビューを作成します.2つのサブビューがあります.最初のサブビュー1に移動するとメインビューに戻ることができますが、サブビュー1からサブビュー2に移動するとサブビュー1に戻ることができません. subview1 はどういうわけか null です。
私のレイアウトページにこのスクリプトを入れました
<script>
$(document).on('mobileinit', function () {
$.mobile.page.prototype.options.addBackBtn = true;
$.mobile.page.prototype.options.backBtnText = "Back";
$.mobile.page.prototype.options.backBtnTheme = "a";
$.mobile.defaultPageTransition = "slide";
});
</script>
メインページは次のとおりです。
<script>
$(document).on('click', '[data-rel=back]', function (e) {
e.preventDefault();
var activepage = $.mobile.activePage.attr("id");
if (activepage == "schedule")
$.mobile.changePage($('#flight'), { transition: "slide", reverse: false });
if (activepage == "dayFlight") {
$.mobile.changePage($('#schedule'), { transition: "slide", reverse: false });
}
});
<div data-role="page" id="flight" data-add-back-btn="true">
<div data-role="content">
<ul id="flightListView" data-role="listview" data-inset="false" data-filter="true">
@foreach (var item in Model)
{
<li>
<a href="@Url.Action("Schedules", new { from = item.DepartureFrom, to = item.Destination })" data-direction="reverse" data-transition="slide">
<span class="ui-li-count ui-btn-up-c ui-btn-corner-all">@item.NumberOfFlights</span>
</a>
</li>
}
</ul>
</div>
サブビュー1は次のとおりです。
<div data-role="page" data-add-back-btn="true" id="schedule">
<div data-role="content">
<ul id="scheduleListView" data-role="listview" data-inset="false" data-filter="false">
@foreach (var item in Model)
{
<li>
<a href="@Url.Action("DayFlights", new { from = from, to = to, date = item.Date })" data-direction="reverse" data-transition="slide">
<span class="lg">@Html.DisplayFor(modelItem => item.Day)</span>
<span class="lg number laligned">@Html.DisplayFor(modelItem => item.Date)</span>
<span class="ui-li-count ui-btn-up-c ui-btn-corner-all">@item.Nof</span>
</a>
</li>
}
</ul>
</div>
subview2 は次のとおりです。
<div data-role="page" data-add-back-btn="true" id="dayFlight">
<div data-role="content">
<ul id="dayListView" data-role="listview" data-inset="true" data-filter="false">
@foreach (var item in Model)
{
<li>
<a href="@item.AgencyUrl" rel="external" data-ajax="false">
<span class="ui-li-count ui-btn-up-c ui-btn-corner-all">@item.Cap</span>
</a>
</li>
}
</ul>
</div>
サブビュー1に移動すると、メインビューとサブビュー1の両方がDOMにありますが、サブビュー2に移動すると、サブビュー1がサブビュー2に置き換えられるため、サブビュー2にいるときにサブビュー1が行うことを意味しますDOM には存在しません。
すべてのケースで $.mobile.activePage.prev('.ui-page'); null を返すため、if 句を使用してどのページに戻るかを決定することにしましたが、subview2 から subview1 に戻りたい場合は機能しません。
このシナリオを実装するにはどうすればよいですか?
前もって感謝します