在所有元素上应用jquery代码

如何将jquery函数应用于使用ajax加载的元素?

Test

Test

Test

.... Test

$(document).ready(function() { $('.h').click(function() { alert("test"); }); });

所以,这完美地运作。 每次单击span元素都会返回一个警报。 但是click函数不适用于使用ajax加载的元素:

 Test

Test

Test

.... Test

$(window).scroll(function(){ if ($(window).scrollTop() == $(document).height() - $(window).height()) { $('body').append('Test3

'); } }); $(document).ready(function() { $('.h').click(function() { alert("test"); }); });

我该如何解决这个问题?

jQuery的live()就是你想要的:

 $('.h').live('click', function () { // Do something! } 

click()函数只为调用它时出现的元素添加一个监听器。 您需要在任何元素上再次调用它,稍后再添加。

或者,正如@jerluc所述,使用live()函数。

您必须使用实时而不是单击,以便事件也绑定到新添加的项目:

 $('.h').live('click', function() { alert("test"); }); 

您需要live函数将事件绑定到动态创建的元素:

 $('.h').live('click', function() { alert("test"); }); 

您没有重新应用该行为。 您需要使用jQuery的live方法来继续检查DOM以获取新元素。

现场演示

  $(document).ready(function() { $('.h').live('click', function() { alert("test"); }); });