javascript - 在外部单击时关闭选项卡

标签 javascript html jquery css jquery-events

我正在开发一个滑出式选项卡,当用户单击“反馈”按钮时,该选项卡将打开和关闭。当前逻辑默认隐藏tab然后勾选margin-right。一切都很好。我唯一担心的是,如果我在标签外部单击,如何关闭标签?

Link to the working JSFiddle

(function($) {
  //<![CDATA[
  $(document).ready(function() {

    $(function() {
      $('#nav').stop().animate({
        'margin-right': '-230px'
      }, 1);

      function toggleDivs() {
        var $inner = $("#nav");
        if ($inner.css("margin-right") == "-230px") {
          $inner.animate({
            'margin-right': '0'
          });
          $(".nav-btn").html('<img src="http://bookbecho.com/img/feedback.png" alt="open" />')
        } else {
          $inner.animate({
            'margin-right': "-230px"
          });
          $(".nav-btn").html('<img src="http://bookbecho.com/img/feedback.png" alt="close" />')
        }
      }
      $(".nav-btn").bind("click", function() {
        toggleDivs();
      });

    });


  }); //]]> 


})(jQuery);

最佳答案

看这个fiddle

在您的 JS 中创建一个新函数,如下所示

function closediv() {
  var $inner = $("#nav");
  $inner.animate({
    'margin-right': "-230px"
  });
  $(".nav-btn").html('<img src="http://bookbecho.com/img/feedback.png" alt="close" />')
}

并如下调用它

$('html').click(function() {
  //Hide the menus if visible
  var $inner = $("#nav");
  if ($inner.css("margin-right") != "-230px") {
    closediv();
  }
});

关于javascript - 在外部单击时关闭选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35654539/

相关文章:

html - 如何用图片填充div

javascript - 如何从文本区域输入创建 $_POST 数组

javascript - JQuery 旋转 - 在 Chrome 中重新启动旋转

javascript - 删除 P5.js 中特殊字符周围的空格

ios - HTML5 音频 iPAD,无法播放音频文件?

javascript - 在jqgrid中选择所有复选框的功能

javascript - 如何比较两个 jQuery 对象的身份?

javascript - Angular 不绑定(bind) ng-click

javascript - 按子字符串过滤结果错误

html - 容器未拉伸(stretch)至页面宽度