Jquery 我可以在创建对象之前将事件添加到对象中吗?

Jquery 我可以在创建对象之前将事件添加到对象中吗?,jquery,Jquery,我动态创建了以下内容: <a class="editLink" href="/location/Edit?city=05">Edit</a> 在元素出现之前,有没有什么方法可以指定它?此外,我如何处理以下问题: $(".editLink").button(); 当.editLink不存在时。您可以使用方法侦听页面上的新元素。当它添加到页面时,事件会自动添加。通过将处理程序放在文档上,使用事件委派 $(document).on('click', '.editLink',

我动态创建了以下内容:

<a class="editLink" href="/location/Edit?city=05">Edit</a>
在元素出现之前,有没有什么方法可以指定它?此外,我如何处理以下问题:

$(".editLink").button();

当.editLink不存在时。

您可以使用方法侦听页面上的新元素。当它添加到页面时,事件会自动添加。

通过将处理程序放在文档上,使用事件委派

$(document).on('click', '.editLink', function() {
  alert('edit link');
  return false;
});
这称为“实时”或“委托”事件。
$(文档)
部分标识将处理事件的元素,此元素在运行此代码时必须存在。您应该尽可能地将其设置为父元素。使用
document
有点过分,但它会起作用

'.editLink'
字符串用处理程序标识元素内任何子元素的选择器。当事件发生时,将根据该选择器检查原始元素,以查看是否有匹配的元素触发了事件。如果是,则运行事件处理程序

请参见此处的工作示例:


请注意,链接在绑定处理程序时不存在,但在以后添加链接时仍会触发处理程序。

您可以使用jquery委托给它-

是的,您可以通过
上使用
删除
事件,如果您使用jquery 1.7或更高版本,则使用
委托

$('body').on('click', '.editLink', function() {
  alert('edit link');
  return false;
});

如果您知道要提高性能,可以使用任何上下文选择器(可能是父元素),而不是body。如何处理-$(“.editLink”).button();“on”是否也可以这样做?这不是一个标准的jQuery方法,我不知道它的作用,也不知道为什么需要它,所以无法提供太多建议…抱歉耽搁了。Button是一个jQueryUI方法。我不确定它是做什么的,但这只适用于事件处理程序。如果此方法以某种方式将链接转换为按钮,那么该元素在运行时可能需要存在。在这种情况下,您必须在插入每个链接后调用它。
$('body').on('click', '.editLink', function() {
  alert('edit link');
  return false;
});