很难将jQuery click事件附加到动态创建的对象[重复]

w3nuxt5m  于 2023-04-20  发布在  jQuery
关注(0)|答案(1)|浏览(112)

此问题已在此处有答案

Event binding on dynamically created elements?(23答案)
18小时前关闭
这应该很简单,但我正在绞尽脑汁地研究语法。
我有一个简单的lightbox函数,它可以完美地处理运行时已经存在的图像。但是我有一个隐藏的div,它可以从另一个脚本加载内容-有时,它还包括我想要lightbox的图像。
我知道我需要在这里添加on(),但我搞砸了语法。
以下是工作函数布局:

$('.lightbox_trigger').click(function(e) {

//function body here

});//end function

这应该是一个简单的修复方法,但是当我把它 Package 在()上时,我似乎把它搞砸了。我想给你一个快速的建议。谢谢!

enxuqcxy

enxuqcxy1#

你的jQuery selector .lightbox_trigger会在运行这一行时,在每个元素上附加click事件。但是,如果你在代码运行后动态地添加元素到html中。这些新元素将不会附加事件侦听器。
有多种方法可以解决这个问题,但您可以将事件侦听器附加到存在的元素,并让它侦听子元素上的该事件。例如:

$(document).on('click', '.lightbox_trigger', function () {
   console.log('clicked!!');
});

现在,事件侦听器还将处理您稍后添加到DOM的元素。

相关问题