Javascript 为什么.on(';change';,handler)在chromium中不起作用,而.change()在chromium中起作用?

Javascript 为什么.on(';change';,handler)在chromium中不起作用,而.change()在chromium中起作用?,javascript,jquery,google-chrome,rspec,chromium,Javascript,Jquery,Google Chrome,Rspec,Chromium,我一直在使用selenium驱动程序进行rspec测试,代码非常简单 $('div#filter').on('change', 'input, select', () => { alert('hello !'); }); 显然,我有一个带有多个输入和选择框的div#过滤器。当我在Chrome浏览器(最新版本)的开发中使用此代码时,会触发警报 但是我的测试失败了。然后我迫不及待地切换到SeleniuChrome驱动程序(我不得不安装chrome驱动程序)。它也失败了。然后我打开了我

我一直在使用selenium驱动程序进行rspec测试,代码非常简单

$('div#filter').on('change', 'input, select', () => {
    alert('hello !');
});
显然,我有一个带有多个输入和选择框的div#过滤器。当我在Chrome浏览器(最新版本)的开发中使用此代码时,会触发警报

但是我的测试失败了。然后我迫不及待地切换到SeleniuChrome驱动程序(我不得不安装chrome驱动程序)。它也失败了。然后我打开了我自己,访问了网页,但它真的不起作用。我把它改成了。改变方法,它成功了

我错过了什么?一切都在经典chrome上运行

另一件事,如果我使用

$(document).on('change', 'div#filter input, div#filter select', () => {

它也适用于chromium…

在我看来,在运行第一个块时,
div id=filter
似乎不存在。运行时,
$('div#filter').length会返回什么?它就在那里,我可以在屏幕快照上看到它,它可能与您查询dom时存在的非常不同。如果在该块运行后插入,则找不到可附加侦听器的内容。第二个块使用事件委派,它负责在运行后添加的元素。我检查了它,期望(页面)有_selectordiv#filter,count:1是passingtry以在文档中添加事件就绪