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