Sto*_*eak 2 ajax jquery asp.net-mvc-3
我正在玩一个小的MVC 3应用程序,我已经在我的ajax提交的表单上设置了LoadingElementDuration参数,但似乎它根本没有效果.如果我将其设置为1或5000,则动画始终以相同的速度播放.
这是一个已知的bug还是什么?
这是我的视图代码,它部分取自"Pro ASP.NET MVC 3 Framework"; 动画不会持续5秒钟:
@model IEnumerable<MvcAjax.Models.Appointment>
@{
ViewBag.Title = "Appointment List";
}
<h2>Appointment List</h2>
@using (Ajax.BeginForm(new AjaxOptions { UpdateTargetId = "tabledata", LoadingElementId = "loading", LoadingElementDuration = 5000 }))
{
<p id="loading" style="font-size: 70px; background-color: Red; display: none; overflow: hidden;">Loading data from server...</p>
<table>
<thead>
<tr>
<th>Client Name</th>
<th>Appointment Date</th>
</tr>
</thead>
<tbody id="tabledata">
@Html.Partial("AppointmentData", Model)
</tbody>
</table>
<div>
@Html.DropDownList("id", new SelectList(new[] { "All", "Joe", "Jane", "Bob" }, ViewBag.SelectedValue ?? "All"))
<input type="submit" value="Submit" />
</div>
}
Run Code Online (Sandbox Code Playgroud)
我稍微调整了一下库代码,看起来它确实是一个bug.
问题出在jquery.unobtrusive-ajax.js的以下代码行中:
duration = element.getAttribute("data-ajax-loading-duration") || 0;
Run Code Online (Sandbox Code Playgroud)
如果我将其更改为:
duration = parseInt(element.getAttribute("data-ajax-loading-duration")) || 0;
Run Code Online (Sandbox Code Playgroud)
动画播放正确.当它是一个数字时,jQuery show函数中的duration参数应该是一个整数,而不是一个字符串.
他们可能应该在官方图书馆中改变这一点.我希望这可以帮助其他人.