在所有元素上应用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"); }); });