Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery-单击要隐藏的节,但在单击内部节时忽略_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript jQuery-单击要隐藏的节,但在单击内部节时忽略

Javascript jQuery-单击要隐藏的节,但在单击内部节时忽略,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有这个密码。单击外部部分时,它会显示和隐藏内部部分。类为“innerSect”的内部部分位于类为“outerSect”的外部部分内 除了一件事之外,代码可以按需要工作。单击内部部分时,它将关闭。这在技术上是应该做到的,因为内部部分在外部部分的内部,点击外部部分就是打开和关闭内部部分的方式 我想让它在点击时忽略内部部分。如果可能的话。 也许做一个列表而不是分区? 以下是可以检查事件目标(您单击的元素)是否具有.innerSect类的父级,或者目标本身是否为.innerSect 可以使用jQuer

我有这个密码。单击外部部分时,它会显示和隐藏内部部分。类为“innerSect”的内部部分位于类为“outerSect”的外部部分内

除了一件事之外,代码可以按需要工作。单击内部部分时,它将关闭。这在技术上是应该做到的,因为内部部分在外部部分的内部,点击外部部分就是打开和关闭内部部分的方式

我想让它在点击时忽略内部部分。如果可能的话。 也许做一个列表而不是分区?
以下是可以检查事件目标(您单击的元素)是否具有.innerSect类的父级,或者目标本身是否为.innerSect

可以使用jQuery closest()方法执行此操作:

这是一把小提琴:


但是,在您的情况下,您可以只听h2元素上的单击

像这样的东西应该可以做到:

var $target = $(event.target);
if($target.closest('.innerSect').length){
  return false;
}
这应该做到:

$('.workSect').click(function(event){
  if(!$('.innerSect').has($(event.target))){
    // closing code
  }
  else {
    // don't close
  }
});

$('.workSect').click(function(event){
  if(!$('.innerSect').has($(event.target))){
    // closing code
  }
  else {
    // don't close
  }
});
$(document).ready(function() {
    var $inners = $('.workSect .innerSect');
    $(".workSect").click(function(e) {
        if( !$(e.target).closest('.workSect,.innerSect').is('.innerSect') ) {
            var $inner = $(this).find('.innerSect'),
                visible = $inner.is(':visible');
            $inner.css({
                'visibility': visible ? 'hidden' : 'visible',
                'display': visible ? 'none' : 'block'
            });
            $inners.not($inner).hide();
        }
    });
 });