什么';将Javascript事件附加到AJAX加载的搜索结果列表的最佳方法是什么?

什么';将Javascript事件附加到AJAX加载的搜索结果列表的最佳方法是什么?,javascript,ajax,javascript-events,jquery,Javascript,Ajax,Javascript Events,Jquery,我有一个加载结果的搜索页面。每行旁边都有一个“Delete”按钮,我想在页面上使用特定于该行的一些参数启动一个特定的Javascript函数 最好是将函数调用直接放入正在生成的HTML中,例如,onclick=“deleteFunc();”还是我应该附加jQuery单击事件?我一直在选择后者,但在这种情况下,我不确定最好的方法 即使某些HTML尚未添加到页面中,我是否可以以某种方式将事件附加到该HTML中?如果没有,我必须将所有结果添加到页面中,包括搜索结果中每一行的数组索引,然后将click事

我有一个加载结果的搜索页面。每行旁边都有一个“Delete”按钮,我想在页面上使用特定于该行的一些参数启动一个特定的Javascript函数

最好是将函数调用直接放入正在生成的HTML中,例如,
onclick=“deleteFunc();”
还是我应该附加jQuery
单击事件?我一直在选择后者,但在这种情况下,我不确定最好的方法

即使某些HTML尚未添加到页面中,我是否可以以某种方式将事件附加到该HTML中?如果没有,我必须将所有结果添加到页面中,包括搜索结果中每一行的数组索引,然后将
click
事件附加到按钮上,同时使用存储在隐藏HTML字段中的索引从原始数组访问该行的参数。当我构建HTML的某个点上有特定行的delete按钮所需的所有参数时,重新关联所有内容似乎需要很多工作

假设我使用jQuery的
click
事件,内存不足是否有危险?我可能会有上千行回来。如果是这样,那么当它的内存不足时会发生什么

另一个选项是将每个数组行的JSON序列化到delete按钮旁边的隐藏字段中,我可以稍后检索该字段。这似乎会提高内存效率,但也看起来很难看。

认为JQuery方法可能适合您

将与当前选择器匹配的所有元素(现在或将来)的处理程序附加到事件


您可以使用
.live()
方法向动态添加的元素添加事件

$('.element').live('click', function() {
  // do some stuff.
});

是的,您可以使用live方法在HTML元素存在之前将事件附加到HTML元素

$('.selector').live('click',function(){

alert('Do something here!');

});

太棒了。从来都不知道这个存在!这不需要我确保我带回的每个搜索结果都有一个全局唯一的ID吗?否则,当第二次运行搜索时,来自数组索引3的原始“活动”绑定将绑定到新的结果行#3。具体取决于刷新结果的方式。如果使用.remove(),则绑定也将被删除,因此通过添加新项,.live()方法将重新附加到刚才添加的新项。