Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.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 Has类为';不行吗?_Javascript_Jquery - Fatal编程技术网

Javascript Has类为';不行吗?

Javascript Has类为';不行吗?,javascript,jquery,Javascript,Jquery,我有一个jquery方法,它应该检查菜单是否打开(使用该类),以及单击是否发生在该类的元素之外 到目前为止,它取消了购物车的打开,因为它将立即添加类(打开)并删除类 我不确定发生了什么,因为这不是我告诉我的代码要做的 有什么想法吗 $(document).on('click', function (e) { if (jQuery('body').hasClass("cbp-spmenu-push-toleft") == true && jQuery(e.

我有一个jquery方法,它应该检查菜单是否打开(使用该类),以及单击是否发生在该类的元素之外

到目前为止,它取消了购物车的打开,因为它将立即添加类(打开)并删除类

我不确定发生了什么,因为这不是我告诉我的代码要做的

有什么想法吗

$(document).on('click', function (e) {
    if (jQuery('body').hasClass("cbp-spmenu-push-toleft") == true 
        && jQuery(e.target).hasClass('cbp-spmenu-open') == false) 
    {
        console.log('clock')
        jQuery('body').removeClass('cbp-spmenu-push-toleft')
        jQuery('#cbp-spmenu-s2').removeClass('cbp-spmenu-open')
    }
}

e.target
这是指发生单击的任何元素,而不是您认为会发生的元素

你应该把

//$(document)
$("#cbp-spmenu-s2").on('click', function () {
  if ($('body').hasClass("cbp-spmenu-push-toleft")&&!$(this).hasClass('cbp-spmenu-open')) {
    console.log('clock')
    $('body').removeClass('cbp-spmenu-push-toleft');
    $('#cbp-spmenu-s2').removeClass('cbp-spmenu-open');
  }
});

你在哪里添加了问题中提到的类?你能提供更多的代码吗。就像e.a.HTML和其他Javascript部分一样,你是否正确地编写了点击绑定代码?如果有body类条件,您可以通过放置警报/日志b4进行检查。您是否从文档中捕获了click事件?您需要用单击的元素替换文档。