我有一個ASP.NET MVC 3.0局部視圖,這是在jQuery UI對話框中呈現。 在這個部分視圖中,我有一些鏈接可以幫助我顯示更多信息。JQuery綁定點擊事件保留舊綁定值
@foreach (StatusType status in ViewBag.Status)
{
<li>@status.StatusMessage<a href='#' status='@status.StatusCode'><img [email protected]("~/Content/Images/information.png") alt="See detail"/></a></li>
}
我綁定的單擊事件的鏈接:
$('a[status]').live('click', function (e) {
if (e.preventDefault)
e.preventDefault();
else
e.returnValue = false;
var status = $(this).attr('status');
alert('@Model.Code');
...});
正在發生的事情是,當我點擊了第一次鏈接它會顯示我正確的代碼(比方說12) 。當我再次爲另一個代碼加載局部視圖(66)時,它會顯示兩條警告消息,第一個是12(我之前點擊過的舊值),第二個是66.
更多部分視圖我會加載我在警報中的更多價值。 我不明白爲什麼它讓我喜歡我點擊過的所有代碼的歷史。
如果有人對這個問題有任何的想法,它會受到歡迎,它只是讓我發瘋。
在此先感謝。
修訂
使用的上,而不是實時的作品,但我仍然有對話的問題。 我已經改變與解決方案的代碼建議:
$('#StatusDiv').on('click', 'a[status]', function (e) {
e.preventDefault();
var status = $(this).attr('status');
alert('@Model.Code');
$('#StatusDialog').dialog({
autoOpen: false,
width: 800,
resizable: true,
title: 'Status Info',
modal: true,
open: function (event, ui) {
alert('@Model.Code');
$(this).load('@Url.Action("ViewStatusInfo")', { clientId: clientId, Code: '@Model.Code', status: status
});
}
});
$('#StatusDialog').dialog('open');
});
第一個警報顯示正確的代碼,但open函數裏面的第二個警報顯示舊的。在第二次點擊它會正常工作,但我不明白它是如何選擇舊值,因爲第一個顯示是正確的...
再次感謝您的幫助。
我認爲你必須在局部視圖jQuery代碼和每個負載之後,您將新的事件。 – webdeveloper