从动态生成的元素捕获事件
您遇到了一个问题,即模态 DIV 中动态生成的元素触发的事件未被捕获由您现有的事件处理程序捕获。这个问题的出现是由于这些元素的动态特性,这些元素是在事件处理程序绑定后添加的。
为了解决这个问题,jQuery 提供了两种方法:.on 和 .delegate(适用于 1.7 之前的 jQuery 版本) )。这些方法允许您将事件委托给绑定处理程序时存在的静态祖先元素。在这种情况下,模态 DIV 充当静态祖先。
通过使用 .on 或 .delegate,您可以确保事件冒泡到祖先元素并触发事件处理程序,即使对于内部动态生成的元素也是如此。它。下面是使用 .on 方法的更新代码:
$('#modal').on('keyup', 'input', function() { handler = $(this).val(); name = $(this).attr('name'); });
或者,对于 1.7 之前的 jQuery 版本,您可以使用 .delegate 方法,如下所示:
$('#modal').delegate('input', 'keyup', function() { handler = $(this).val(); name = $(this).attr('name'); });
通过实现此解决方案,您可以有效地捕获和处理模态 DIV 内动态生成的元素触发的事件,确保用户的输入被记录为预计。
以上是如何从模态中动态生成的元素捕获事件?的详细内容。更多信息请关注PHP中文网其他相关文章!