MVC 2 / jQuery モバイル アプリケーションを使用しています。
私のメイン ビューには、並べ替え可能なリストがあります。並べ替えは url パラメータで機能しますsortorder
。並べ替えを変更できるドロップダウンは、次のような部分ビューにあります。
<div class="ui-select">
<select name="sortSelect" id="sortSelect" data-mini="true">
<option value="opt1">Option 1</option>
<option value="opt2">Option 2</option>
<option value="opt3">Option 3</option>
</select>
</div>
次に、ドロップダウンが変更されたかどうかを確認するjQueryがあります。変更時に、新しいドロップダウン値で url パラメーターを追加または変更sort
し、新しい url にリダイレクトします。
$(document).ready(function () {
$('#sortSelect').change(function () {
var sortOrder = $('#sortSelect').val();
var url = document.URL;
if (url.indexOf("sortorder=") > -1)
url = url.replace(/sortorder=[^&]+/, "sortorder=" + sortOrder);
else
url = url + "&sortorder=" + sortOrder;
window.location.replace(url);
});
});
sortorder の前に他のパラメータがいくつかあるので、& で追加しても問題ありません。
ページが新しく読み込まれたときに URL から正しい値を設定するには、次の jQuery を使用します (関数 gup は URL から値を読み取ります)。
$('#sortSelect').ready(function () {
var sortorder = gup('sortorder');
if (sortorder != '')
$('#sortSelect').val(sortorder);
}
問題があります。サイトを読み込んでsortorder
ドロップダウンを変更すると、これまでのところすべてが機能します。ページは、新しい url パラメータと新しくソートされたリストで新しく読み込まれます。ドロップダウン値も正しく設定されています (私はこれを で確認しましたalert($('#sortSelect').val()
が、ドロップダウン テキストは古いものです。F5 を押すと、サイトが更新され、ドロップダウンに正しいテキストが表示されます...
問題を解決する方法はありますか? または、まったく問題は何ですか?