我试图在php文件中包含的html片段中运行以下简单的代码,加载了jquery的.load()函数:
$(".thumbnail").on("click", function(event){
alert("thumbnail clicked");
});
然而,我似乎无法让它在我的页面的这一部分上工作。我有其他调用未通过ajax加载的元素,它们与.on()函数一起正常工作。我的印象是.on()会识别ajax加载的内容。
我的.thumbnail元素是包含在一系列div中的img标签中的图片,所有div都通过ajax加载,jquery似乎无法找到任何这些内容。我的所有代码都包含在ready函数中。
有没有办法让jquery识别这些新元素?
感谢。
答案 0 :(得分:5)
您需要一个动态内容的委托事件处理程序:
$('#container').load('somefile.php');
$('#container').on('click', '.thumbnail', function(event){
// do stuff
});
最接近的非动态父级可能是您正在加载内容的元素,您需要将事件处理程序附加到该元素,基于.thumbnail
类进行过滤,就像上面的代码一样。