如何将jQuery绑定事件发送到通过Ajax加载的元素?

我正在使用.load()函数来加载一段html,它具有一些绑定到某个类的jQueryfunction。 = /

想法?

使用直播活动:

$('.className').live(function(event) { ... } 

在这种情况下,jQuery会保留所有实时选择器的存储库,例如.className 。 它还为文档添加了一个处理程序,以侦听冒泡到文档的事件。 然后,此特殊处理程序基本上遍历所有实时选择器,并将事件转发到与实时选择器匹配的元素(如果有)。

如果任何中间事件处理程序拦截事件并在它到达文档之前阻止它进一步传播,则不会执行live处理程序。

如果您使用的是click事件,那么这将是您的语法:

  $('a.myClass').live("click", function() { // do something here }); 

您需要使用JQuery的实时function 。 这允许您:

现在或将来,为当前选择器匹配的所有元素附加事件处理程序。

您可以使用on()函数。

像这样:

 $(".existingElement").on('click', '.addedByAjax .className', function(){ // ... do whatever } 

请注意,现有元素必须存在于此段代码运行的那一刻。 因此,您始终必须绑定到一个元素,您将通过ajax将其加载到其中 ,并使用第二个选择器(on()函数中的一个)来匹配添加的内容。

您必须在设置html后手动绑定事件。

 $.post('ajax/test.html', function(data) { $('.result').html(data); $('.result a').click(function() { alert('click'); }); }); 

此外,您可以使用live来帮助它。