Jquery如果不是div或其任何内容,请执行此操作

时间:2018-02-23 10:19:36

标签: jquery

我正在尝试制作一个侧面板,只需点击一下按钮即可从右侧滑出,然后如果单击面板外部,则会滑回。

在下面的代码中,当点击div#sidepanel中的任何元素时,它会滑入,因为它们的“id”不是“sidepanel”。如何在div#sidepanel中包含任何和所有元素?我试图......

if (e.target != $('div#sidepanel).find(*)){};

代码如下:

$("main").click(function(e) {
  if (e.target.id == 'opensidepanel') {
    $("div#sidepanel").animate({
      right: '0px'
    });
  } else if (e.target.id != 'sidepanel') {
    $("div#sidepanel").animate({
      right: '-340px'
    });
  }
});

1 个答案:

答案 0 :(得分:0)

您可以使用has

执行此操作
else if (!$("#sidepanel").has(e.target)) {

根据是否也应排除侧面板上的点击(不是它的子元素),您可能需要扩展:

else if (!$("#sidepanel").has(e.target) && e.target.id != 'sidepanel') {

显然,很大程度上取决于您网页中#main的内容,因为您只捕获该区域的点击次数。您可能只想在整个文档中收听点击事件。