如何检查它被点击div的一个孩子?

时间:2016-03-06 06:54:10

标签: javascript jquery html

我有这个脚本:

$('body').click(function(evt){
   var all_childs=$("#menu-js").find('*');
    console.log(all_childs);
    if(evt.target.id == "menu-js"){   //here should change condition
        console.log(evt.target.id);
        return;
    }else{
        if($('#menu-left').is(':visible'))
        {
            $("#menu-left").hide();
        }else{
            if(evt.target.id == "cake") {
                $("#menu-left").show();
            }
        }
    }
});

我想要的是检查是否点击了"all_child"

的其中一个元素

我将链接放到我的网站上以便更好地检查代码

link

我该如何处理这个条件?

提前致谢!

编辑:

sample

代码HTML:

<div id="menu-js">
  <ul id="menu-left">
    <li>1</li>
    <li>2</li>
    <li>3</li>
  </ul>  
</div>  

<button id="cake">SHOW MENU</button>

2 个答案:

答案 0 :(得分:0)

像这样检查(根据您的要求更新)

var $target = $(evt.target || evt.srcElement);
// check if the current target has a parent with id 'menu-js'
if ($target.parents("#menu-js").length > 0) {
  if ($('#menu-left').is(':visible')) {
    $("#menu-left").hide();
  }
} else if (evt.target.id == "cake") {
  $("#menu-left").show();
}

答案 1 :(得分:0)

这完全可以按你的需要工作!

以下链接指向:JsFiddle

$('body').click(function(e) {

    var target = $(e.target);
        console.log(target.context);
        console.log(target.is(':visible'))

    if(target.context.id == "menu-js"){   //here should change condition
                alert(target.context.id);
    }else{
                    if($('#menu-left').is(':visible')){
             $("#menu-left").hide();
          }else{
             if(target.context.id == "cake") {
                $("#menu-left").show();
            }
          }
        }
});