如何使用对象语法将选择器字符串传递给 jQuery 事件侦听器

How to pass in a selector string to a jQuery event listener using the object syntax

我正在为 jQuery 的 on 侦听器使用以下对象语法。

$(window).on({
    keydown: function(event){
    },
});

使用这种语法,我怎样才能实现以下目标

$(window).on("keydown", "div", function(event){
});

我想使用前一种语法,并传入一个选择器字符串来过滤后代。听起来像是一个非常基本的问题,但我在 docs.

中找不到任何示例

您仍将委托选择器作为第二个参数传递(请参阅 docs)。它适用于 所有 个事件:

$(window).on(
    {
        keydown: function(event){
        },
        anotherEvent: function(event) {
        },
        someOtherEvent: function(event) {
        },
    },
    "div"
);

您不能在单个 on 调用中使用 不同的 委托选择器连接多个事件处理程序。如果你需要这样做,你需要多次调用:

$(window)
    .on("keydown", "div", function(event){
    })
    .on("anotherEvent", "span", function(event) {
    })
    .on("someOtherEvent", "p", function(event) {
    });