Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.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 单击“外部”上的折叠引导按钮_Javascript_Jquery_Twitter Bootstrap - Fatal编程技术网

Javascript 单击“外部”上的折叠引导按钮

Javascript 单击“外部”上的折叠引导按钮,javascript,jquery,twitter-bootstrap,Javascript,Jquery,Twitter Bootstrap,我正在使用这段代码,它几乎是从引导程序中取出的,以获得按钮的简单折叠行为(我将按钮转换为链接): 点击我 这里是示例文本 现在,我想做的是当用户点击按钮外的时候关闭文本。我知道这在堆栈溢出中被问了很多次,但jQuery一点也不直观!至少对于像我这样的初学者来说,我真的无法适应任何关于这个问题的解决方案,从而获得想要的行为 例如,我使用这个脚本(借用的概念)来控制上述代码的外部点击行为: <script> $(document).ready(function () {

我正在使用这段代码,它几乎是从引导程序中取出的,以获得按钮的简单折叠行为(我将按钮转换为链接):


点击我
这里是示例文本
现在,我想做的是当用户点击按钮外的时候关闭文本。我知道这在堆栈溢出中被问了很多次,但jQuery一点也不直观!至少对于像我这样的初学者来说,我真的无法适应任何关于这个问题的解决方案,从而获得想要的行为

例如,我使用这个脚本(借用的概念)来控制上述代码的外部点击行为:

<script>
  $(document).ready(function () {
      $(document).click(function (event) {
      var clickover = $(event.target);
      var _opened = $(".btn-link").hasClass("collapse");
             if (_opened === true && !clickover.hasClass("data-toggle") && clickover.parents('.btn-link').length == 0) {
                $("button.data-toggle").click();
             }
       });
  });
</script>

$(文档).ready(函数(){
$(文档)。单击(函数(事件){
var clickover=$(event.target);
var_opened=$(“.btn link”).hasClass(“崩溃”);
如果(_opened==true&&!clickover.hasClass(“数据切换”)&&clickover.parents('.btn link')。长度==0){
$(“button.data toggle”)。单击();
}
});
});
但当然没有运气。任何暗示都将不胜感激

更新


另一次尝试没有运气。

您可以使用以下方法:

//handling the hiding when clicking anywhere else in the document
$(document).mouseup(function(e)
{
    var container = $('.btn-link');
    if (container.has(e.target).length === 0) {
      // the closing function
    }
});

这就是我在Coffeescript for Bootstrap 4中使用非标准导航条所做的

  $(document).click (e)->
    #console.log e.target
    unless $('#toggle-button').has(e.target).length || $('#toggle-menu').has(e.target).length
      $('#toggle-menu').collapse('hide')
所以基本上,除非你点击按钮或菜单,否则关闭菜单


注意:奇怪的是,在iOS上单击文本不会注册单击事件,也不会注册鼠标点击事件。但单击图像会触发事件。不知道如何解决此问题。

您应该花一点时间学习JQuery,不仅仅是针对这类问题,还针对HTML中遇到的许多其他问题。答案有什么不直观的在你的链接答案中提出?对我来说,这看起来很直观。也许我们可以帮助你解决更多问题。我也被JQuery和讨厌的Javascript弄糊涂了,但在学习之后,它意识到它非常强大,有点像它。我更喜欢咖啡脚本。接受本教程,谢谢Ahmad!我将使用的关闭函数的形式是什么?单击按钮时关闭按钮的属性是什么?@pebox11您可以添加jsFiddle作为示例吗please@pebox11what我应该在这个例子中看到。它只是一个按钮和一个文本,根本没有交互作用。这也是原始问题中描述的主要问题。Wh至少对于像我这样的初学者来说,这就是为什么我说jQuery一点都不直观的原因。。。
  $(document).click (e)->
    #console.log e.target
    unless $('#toggle-button').has(e.target).length || $('#toggle-menu').has(e.target).length
      $('#toggle-menu').collapse('hide')