Skip to main content
 首页 » 编程设计

jquery之单击委托(delegate)处理程序和内部子项

2026年07月28日8jirigala

我有以下内容:

<ul id ='foo'> 
    <li><p>hello</p></li> 
    <li><p>hello</p></li> 
    <li><p>hello</p></li> 
</ul> 
 
$('#foo').delegate('li', 'click', function(event) { 
    var target = $(event.target); 
    console.log(target);    
}); 

只要单击内部 p 元素之一以及父 li 元素,就会调用单击处理程序。

无论单击哪个内部子元素,如何获取指向父 li 元素的指针?例如,我真正的 li 元素如下所示:

<li> 
  <p>one</p> 
  <div> 
    <p>two</p> 
  </div> 
</li> 

所以我发现我必须进行多次检查才能返回到被单击的父李。有没有办法只选择类型的父级,例如:

$('#foo').delegate('li', 'click', function(event) { 
    var target = $(event.target).('li'); 
    console.log(target);   // will always be parent li element itself? 
}); 

谢谢

请您参考如下方法:

在处理程序中,this 将引用 li 元素。

$('#foo').delegate('li', 'click', function(event) { 
    var target = $(this); 
    console.log(target);   // will always be parent li element itself? 
});