jQuery – Twitter Bootstrap – 关闭身体所有元素焦点的所有外观

前端之家收集整理的这篇文章主要介绍了jQuery – Twitter Bootstrap – 关闭身体所有元素焦点的所有外观前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当我的任何身体元素(而不是popover本身)被关注时,我正在关闭任何popover被打开,

所以我做:

$(document.body).on('focus focusout focusin',function(e) {
  if( e.target.classList.contains('popover') ){return false;}
  else{
    $('*').popover('hide');
  }
  // code to close the popover
});

这在Chrome上非常出色,但不是在FF上,在FF之前,我需要关注和关注popout.

这里是我的例子,只适用于chrome:http://jsfiddle.net/CU5U5/4/

我如何解决这个问题?

解决方法

替代:
$(document).on('focus',':not(.popover)',function(){
    $('.popover').popover('hide');
});

编辑:

所以,事实证明,我上面的答案是不正确的.您需要在popover被实例化的元素上调用.popover(‘hide’),而不是.popover本身.并且您需要停止链接上的点击事件的传播(即在点击处理程序中返回false),因此它不会冒泡到文档根目录.看到这个答案,http://jsfiddle.net/aFacG/1/.

HTML

<a data-content="a popover" id="mypopover" href="#">click me</a>

JS

$(document).ready(function(){
  $("#mypopover").popover();

  $(document).on('click',function(){
      $("#mypopover").popover('hide');
  });

  $('#mypopover').click(function(){
      return false;
  });
});

猜你在找的jQuery相关文章