我正在尝试使用events-map创建一个.on()方法。我想将此更改为$("ul").on("click", "li", function() {...});
,如下所示:
$("ul").on({
click: function() {...},
mouseenter: function() {...},
mouseleave: function() {...}
});
我在哪里将选择器“li”放在events-map中?
答案 0 :(得分:10)
你只是像往常一样把它作为第二个参数:
$("ul").on (
{
click: function() { ... },
mouseenter: function() { ... },
mouseleave: function() { ... }
},
'li'
);
.on(events-map [,selector] [,data])
events-map 一个映射,其中字符串键表示一个或多个以空格分隔的事件 类型和可选命名空间,值表示要调用的处理函数 对于这些事件。
selector 一个选择器字符串,用于过滤所选元素的后代 调用处理程序。如果选择器为null或省略,则始终在调用处理程序时调用 它到达了选定的元素。
数据事件发生时要在event.data中传递给处理程序的数据。
[]中包含的参数是可选的。因此,如果您不传递选择器,则事件将绑定到jQuery对象中的元素,在本例中为页面上的所有ul
- 元素。但是,如果提供了选择器,那么jQuery对象中的元素将处理由选择器匹配的元素集的事件委托。即,当一个事件发生在与作为jQuery对象中元素后代的选择器匹配的元素上时,该事件处理程序将在事件向上传递到父对象时被调用。请注意,这意味着如果事件传播在到达父级之前被取消,则不会调用事件处理程序。
答案 1 :(得分:3)
在events-map之后:
$("ul").on ({
click: function() { ... },
mouseenter: function() { ... },
mouseleave: function() { ... }
}, "li");
示例: http://jsfiddle.net/pPPW4/
根据docs:
.on(events-map [,selector] [,data])
答案 2 :(得分:2)
事件图之后:
$("ul").on ({
click: function() { ... },
mouseenter: function() { ... },
mouseleave: function() { ... }
}, 'li');
.on(events-map [,选择器] [,数据])