我一直这样做是为了在每次创建元素时创建一个处理程序(当然,rh 每次都不同):
$('#'+rh).on('click', function (e) {...
我想尝试为 rh
类创建一个处理程序,该处理程序将应用于该类中所有随后创建的元素。我已经尝试过,但没有成功:
$('.rh').on('click', function (e) {...
我做错了什么?我认为 on
具有回顾性效果(并且 api.jQuery.com 网站已关闭)。
最佳答案
您应该参加事件委托(delegate)。当您动态创建它们时,您需要对它们进行事件委托(delegate)(也称为实时事件)。
$('#container').on('click', '.rh', function (e) {...
这里的#container
是创建的元素的父元素,该元素在页面加载时属于DOM。你可能还有别的东西。
了解有关的更多信息 .on()
还有另一个选项称为 .delegate()
$('#container').delegate('.rh', 'click', function (e) {...
我会选择.on()
。
关于javascript - jQuery - 类上的事件处理程序,其中元素随后由 AJAX 创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10860813/