【发布时间】:2012-03-29 09:15:19
【问题描述】:
使用.on 委派事件时如何定位子元素:
我试过了:childSelector =
>*>:nth-child(n)
但是当我以> 开头时没有选择任何内容。
$(selector).on(event, childSelector, handler);
有时我想定位一个直接的孩子,有时我不想:(伪代码)
var func = function(selector, subSelector) {
$(selector).on("click", subSelector, function() {
alert("my subSelector is clicked");
});
}
func("#wrapper", "direct-child-selector");
func("#wrapper", ".some .other > .selector:first");
这就是我要求选择器而不是修复的原因。
【问题讨论】:
-
您的编辑没有任何意义。 child 是一个元素,它是该元素的直接后代......例如
child.parentNode === parent。 “indirect child”只是一个后代;例如descendant.parentNode.parentNode.parentNode(etc) === ancestor。由于事件冒泡的工作原理,如果委托处理程序接收到事件,您可以保证事件的目标是后代。 -
@Andreas:查看我的更新答案。
标签: javascript jquery events delegates children