我每次创建一个元素时都会创建一个处理程序(当然rh每次都不同):
$('#'+rh).on('click', function (e) {...
我想尝试为类rh
创建一个处理程序,该处理程序将应用于该类中所有后续创建的元素。我试过这个,但它没有奏效:
$('.rh').on('click', function (e) {...
我做错了什么?我认为on
具有追溯效果(并且api.jQuery.com网站已关闭)。
答案 0 :(得分:4)
你应该参加一个活动代表团。当您动态创建它们时,您需要对它们进行事件委派(也称为实时事件)。
$('#container').on('click', '.rh', function (e) {...
此处#container
是在页面加载时属于DOM的已创建元素的父级。你可能还有别的东西。
详细了解 .on()
还有一个名为.delegate()
$('#container').delegate('.rh', 'click', function (e) {...
我会去.on()
。