【发布时间】:2013-03-09 00:27:08
【问题描述】:
我设置了一个局部视图以在索引页面中呈现。当用户单击排序按钮时,部分视图使用 Ajax 发布到服务器。这样整个页面不会只刷新部分视图表。
问题是在第一次排序后,索引页面中的 JavaScript 不再有效。我通过将 js 放在局部视图本身中以持久化事件来解决这个问题,但这会产生 js 错误,说“继续”或“忽略”。
【问题讨论】:
标签: javascript ajax asp.net-mvc partial-views
我设置了一个局部视图以在索引页面中呈现。当用户单击排序按钮时,部分视图使用 Ajax 发布到服务器。这样整个页面不会只刷新部分视图表。
问题是在第一次排序后,索引页面中的 JavaScript 不再有效。我通过将 js 放在局部视图本身中以持久化事件来解决这个问题,但这会产生 js 错误,说“继续”或“忽略”。
【问题讨论】:
标签: javascript ajax asp.net-mvc partial-views
这是因为您新注入的元素(通过 ajax)不知道有界的事件。所以这些事件绑定对他们来说是不可用的。
您应该将事件绑定更改为使用on,以便它处理当前元素和未来元素(通过 ajax 等动态添加到 DOM)
例如,如果您想为 css 类 someCssClassSelector 的元素处理 click 事件,
改变
$(".someCssClassSelector").click(function(){
//do something
});
到
$(document).on("click",".someCssClassSelector",function(){
//do something
});
【讨论】: