jQuery.on()既是自我也是孩子

时间:2013-05-03 11:42:04

标签: javascript jquery jquery-selectors selector jquery-on

如果没有提供选择器,jQuery中的.on()方法将匹配匹配的元素,或者仅当它是选择器时才会匹配它的子元素。

是否可以将这两种行为结合起来,最终得到一个与元素和任何指定子元素都匹配的.on()语句?

示例:http://jsfiddle.net/mwvdlee/YFF2k/

3 个答案:

答案 0 :(得分:2)

您可以简单地将事件处理程序绑定到父级,并使用event.target [docs]来获取事件的实际目标元素:

$('.foo').on('click', function(event) {
    console.log('click', event.target);
});

由于事件冒出来(这就是事件委托的首要工作方式),每次点击.foo的后代都会触发.foo的事件处理程序(除非事件以某种方式停止了当然)。

答案 1 :(得分:0)

默认情况下,事件正在冒泡。只是避免传递委托selector并在父节点上附加事件处理程序。当孩子被点击时,事件应该冒泡到父母,事件将被解雇。

DEMO:http://jsfiddle.net/YFF2k/2/

$('.foo').on('click', function (e) {
    console.log('click', e.target);
});

答案 2 :(得分:0)

你可以尝试类似的东西:

$('.foo').children().andSelf().on('click', function (event){
  //something
});