在.on()方法事件映射中使用选择器的语法?

mtl*_*mtl 4 jquery jquery-on

我正在尝试使用events-map创建一个.on()方法.我想改变这个:$("ul").on("click", "li", function() {...});这样的事情:

$("ul").on({
    click: function() {...},
    mouseenter: function() {...},
    mouseleave: function() {...}
});
Run Code Online (Sandbox Code Playgroud)

我在哪里将选择器"li"放在事件图中?

Pat*_*and 10

你像往常一样把它作为第二个参数:

$("ul").on (
  {
    click: function() { ... },
    mouseenter: function() { ... },
    mouseleave: function() { ... }
  },
  'li'
);
Run Code Online (Sandbox Code Playgroud)

来自文档:

.on(events-map [,selector] [,data])

events-map一个映射,其中字符串键表示一个或多个空格分隔的事件类型和可选的命名空间,值表示要为事件调用的处理函数.

selector一个选择器字符串,用于过滤将调用处理程序的所选元素的后代.如果选择器为null或省略,则处理程序在到达所选元素时始终被调用.

data发生事件时要在event.data中传递给处理程序的数据.

[]中包含的参数是可选的.因此,如果您不传递选择器,则事件将绑定到jQuery对象中的ul元素,在本例中为页面上的所有元素.但是,如果提供了选择器,那么jQuery对象中的元素将处理由选择器匹配的元素集的事件委托.即,当一个事件发生在匹配作为jQuery对象中元素后代的选择器的元素上时,该事件处理程序将在事件冒泡到父级时被调用.请注意,这意味着如果事件传播在到达父级之前被取消,则不会调用事件处理程序.