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