我已经设置了一个局部视图以在索引页面中呈现。当用户单击排序按钮时,部分视图使用 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
});