单击委托处理程序和内部子项

时间:2010-08-29 02:29:05

标签: jquery

我有以下内容:

<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元素,就会调用click处理程序,以及父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?
});

由于

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

var target = $(this)应该是一种方式 - 这就是我通常的做法。 $(event.target).parents(“li”)将是另一个,但你可能会比你期望的更多。