我已经看到这里解决了一些类似的问题,但我还没有找到解决方案。
我有一个 .NET MVC 项目,在某些电脑上我无法在 .load() 调用后执行 javascripts。
我有:
- 页面 RealtimeAlarms
- ascx 组件 AlarmsList
- 一个javascript文件Alarms.js
RealtimeAlarms 加载所有需要的 js,并使用以下方式渲染 ascx 组件:
<script type="text/javascript" src="<%: ResolveUrl("~/Scripts/Alarms.js") %>"></script>
....
....
<input type="text" id="Like" />
<img alt="Filter" src="<%: ResolveUrl("~/Content/Images/Search.png") %>" class="clickable" onclick="FilterAlarms()" />
....
....
Html.RenderAction("AlarmsList", "Alarms", new {Like = ""});
Alarms.js 看起来像这样:
function FilterAlarms() {
var data = {};
data.Like = $('#Like').val();
$("#AlarmsDiv").html("");
$("#AlarmsDiv").load(BaseUrl + "Alarms/RealtimeAlarms #content", data, function (responseText, textSatuts, XMLHttpRequest) { });
}
function ShowUsers(id)
{
....
}
我的 RealtimeAlarms 组件:
foreach(var alarm in ViewData.Model)
{ %>
<li onclick="ShowUsers(<%: alarm.Id %>)"><%: alarm.Description %></li>
<% } %>
当我第一次加载页面时,它总是运行良好。ShowUsers() 总是有效的。
当我点击过滤器时,我的问题就开始了。FilterAlarms() 总是返回正确的列表。在某些电脑上 ShowUsers() 停止工作,甚至不再调用它。
使用相同的浏览器(我尝试使用 Chrome 和 IE9),在某些电脑上 ShowUsers() 总是可以正常工作,而在其他一些电脑上它在 FilterAlarms() 之后停止工作。使用相同的数据。
感谢大家的任何建议。