dom – 使用JQuery event.target与孩子们一起工作

前端之家收集整理的这篇文章主要介绍了dom – 使用JQuery event.target与孩子们一起工作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我的问题专门针对http://api.jquery.com/event.target/#example-1

如果您在< li>中使用跨度或其他标签来改变样式,例如< b>正如我在here所做的那样,元素的这一部分不会触发JQuery函数来切换它的子节点.怎么可能让这个工作?

HTML:

JavaScript的:

function handler(event) {
  var $target = $(event.target);
  if( $target.is("li") ) {
    $target.children("ul").toggle();
  }
}
$("ul").click(handler).find("ul").hide();
最佳答案
为了继续使用您当前的表单,我建议使用nearest():

function handler(event) {
    $(event.target).closest('li').children("ul").toggle();
}
$("ul").click(handler).find("ul").hide();

JS Fiddle demo.

虽然我自己使用,但我更喜欢:

$('li').on('click',function(e){
    e.stopPropagation();
    $(this).find('ul').toggle();
});

JS Fiddle demo.

参考文献:

> closest().
> on().

猜你在找的jQuery相关文章