Javascript jQuery click函数未将click事件附加到锚定

Javascript jQuery click函数未将click事件附加到锚定,javascript,jquery,onclick,Javascript,Jquery,Onclick,HTML 内部 我有一系列具有唯一ID的图像链接,如下所示 <a href=''><img id='12341234' class='foo-bar-thumbnail-image' src='/path/to/image.jpg'></a> <a href=''><img id='56785678' class='foo-bar-thumbnail-image' src='/path/to/image.jpg'></a>

HTML

内部
我有一系列具有唯一ID的图像链接,如下所示

<a href=''><img id='12341234' class='foo-bar-thumbnail-image' src='/path/to/image.jpg'></a>
<a href=''><img id='56785678' class='foo-bar-thumbnail-image' src='/path/to/image.jpg'></a>
正如您在上面看到的,我正在尝试将一个click函数绑定到每个图像链接。但是,这不起作用(无论是否使用
unbind()

在上面的代码运行之后,如果我检查开发工具中的图像链接,我可以看到缩略图上已经附加了两次单击事件。以上两项都不是我的职责。它们的路径都来自页面上嵌入的其他应用程序库:一个标记为“jQuery”,另一个标记为“Bubbling”和“DOM2”。我猜这些附加的事件意味着我不能在上面添加我的事件,但我对jQuery或javascript了解不够,不知道这是不是真的(我通常是服务器端开发人员,我根本不知道前端的东西)


任何关于如何让点击事件为这些元素工作的建议都将不胜感激,这样我就可以用需要运行的代码替换上面的演示代码

您只需将
单击
事件绑定到页面上已经存在的父元素

$('#foo-bar-baz').on('click', '.foo-bar-thumbnail-image', function(){
  // what you want to happen when click 
  // occurs on elements that match '.foo-bar-thumbnail-image'
  // within '#foo-bar-baz'
  alert("I am thumbnail " + $(this).id);
});

您应该使用
$(文档)。在('click','.foo-bar缩略图图像,'function()…
上,而不是
$。单击(function()…
),因为事件处理程序位于通过JS在页面上呈现的元素上。这是一个“委托”事件处理程序-你可以在这里阅读更多关于这方面的信息

你的警报中的“.”不应该是“+”?你正在尝试连接,不是吗?啊!是的,你是对的-告诉你我是个愚蠢的服务器端开发人员!这是PHP语法。但是如果我修复了连接(我也会在帖子中这样做),然后重新加载代码,我也遇到了同样的问题。另外,为什么JS没有警告我语法不好?这不应该在控制台中给我一个警告吗?无论如何,谢谢你的帮助-很好的捕获。你应该使用
$(文档)。在('click','.foo-bar缩略图图像,'function()…
而不是
$。click(function())…
因为事件处理程序位于呈现的元素上。请尝试将click函数替换为。$('.foo-bar缩略图图像')。单击(函数(){alert(“我是缩略图”+$(this)[0].id);});$(this)是jQuery对象。$(this)[0]是jQuery对象封装的DOM元素。感谢@DanNagle,但是Michael Coker在上面的评论中击败了您。非常感谢。
$('#foo-bar-baz').on('click', '.foo-bar-thumbnail-image', function(){
  // what you want to happen when click 
  // occurs on elements that match '.foo-bar-thumbnail-image'
  // within '#foo-bar-baz'
  alert("I am thumbnail " + $(this).id);
});