Javascript 附加多个单击事件而不必重复我自己

Javascript 附加多个单击事件而不必重复我自己,javascript,jquery,html,Javascript,Jquery,Html,。 忽略样式,这并不重要 基本上我需要打开有两个链接的Fancybox,但我只想要一张画廊图片。我很容易就明白了。单击缩略图时,会触发li定位。 为了保持画廊的独立性,我为每个ol制作了独特的课程 我遇到的问题是我会重复我自己。 我试图做一个循环(注释掉),但逻辑超出了我的掌握范围 附加新的单击处理程序(我需要再添加8个)而不以当前方式重复我自己的最佳方式是什么?我还尝试了一个带有几个参数的函数,但在e.preventDefault()中遇到了问题 非常感谢您的指导,谢谢 这看起来是使用jQue

。 忽略样式,这并不重要

基本上我需要打开有两个链接的Fancybox,但我只想要一张画廊图片。我很容易就明白了。单击缩略图时,会触发li定位。
为了保持画廊的独立性,我为每个ol制作了独特的课程

我遇到的问题是我会重复我自己。 我试图做一个循环(注释掉),但逻辑超出了我的掌握范围

附加新的单击处理程序(我需要再添加8个)而不以当前方式重复我自己的最佳方式是什么?我还尝试了一个带有几个参数的函数,但在
e.preventDefault()
中遇到了问题


非常感谢您的指导,谢谢

这看起来是使用jQuery的
on()
方法的一个很好的用例
on()
是一种方法,允许您在外部容器上建立一个处理程序,该容器可以侦听其子容器中的单击事件。因此,例如:如果您在列表中指定了一个类
.js listen
,您可以像这样调用
on()

$('.js-listen').on('click', 'other-selector', function(e){
   // function logic with either $(this) or e.target goes here
}
这个块基本上会使用
.js listen
查找所有元素,然后当使用
.js listen
类单击元素内部的某些内容时,事件将在DOM中冒泡出现,并且事件将根据单击的元素进行处理。我拥有的第二个参数“other-selector”可以是类名、元素或ID。因此,基本上可以在那里放置类似于
img
的内容,如果单击的子元素是
标记,它将触发事件

这会阻止您多次附加处理程序,
on()
的一个好处是,如果元素通过处理程序动态添加到容器中,您就不必担心将处理程序附加到这些元素上,因为它们会冒泡


希望这有帮助

我在这把小提琴中没有看到任何js…?为什么不向一个类添加一个事件,然后将这个类应用到您想要使用的所有元素上呢?好的,我就到了:。正如您所看到的,它仍然有点问题。不太糟糕,尽管我认为您误解了我的部分解释,但我看到您正在使用
$('.activateThumb')收集所有
activateThumb
,我建议您使用这个类获取所有元素,并将其封装在一个div中,可能类似于
,这样您就可以像这样调用侦听器:
$('.activateThumbArray')。在('click','.activateThumb',function(){//logic})上,当单击该div中的内容时,处理程序将检查单击的对象是否是
.activateThumb
:)这个怎么样?仍然不是我想要的。你想要达到什么样的行为?