jquery .on()在php文件的.load()后无效

时间:2013-05-15 17:44:43

标签: ajax jquery

我试图在php文件中包含的html片段中运行以下简单的代码,加载了jquery的.load()函数:

$(".thumbnail").on("click", function(event){

    alert("thumbnail clicked");
});

然而,我似乎无法让它在我的页面的这一部分上工作。我有其他调用未通过ajax加载的元素,它们与.on()函数一起正常工作。我的印象是.on()会识别ajax加载的内容。

我的.thumbnail元素是包含在一系列div中的img标签中的图片,所有div都通过ajax加载,jquery似乎无法找到任何这些内容。我的所有代码都包含在ready函数中。

有没有办法让jquery识别这些新元素?

感谢。

1 个答案:

答案 0 :(得分:5)

您需要一个动态内容的委托事件处理程序:

$('#container').load('somefile.php');

$('#container').on('click', '.thumbnail', function(event){
     // do stuff
});

最接近的非动态父级可能是您正在加载内容的元素,您需要将事件处理程序附加到该元素,基于.thumbnail类进行过滤,就像上面的代码一样。