【问题标题】:Bootstrap tooltips won't hide in newest Safari 8.0引导工具提示不会隐藏在最新的 Safari 8.0 中
【发布时间】:2014-11-18 12:27:10
【问题描述】:

我在最新的 Safari 8.0 上遇到了一个带有 Bootstrap 工具提示的奇怪案例(仅)。 我有一个表格,我必须在每个输入上显示一个工具提示(请不要问为什么)。

这是一个 jsfiddle 示例

`http://jsfiddle.net/d61yuy8q/11/`

这是它在 Safari 8.0 中的外观

首先我认为我们的 css 可能会导致一些问题,所以我将其剥离为纯引导类。然后我想也许我应该将那些工具提示从输入移到包装输入的 div 中,但这也没有帮助。

最后我删除了所有包装器,只留下了输入,但这也没有帮助。

我的猜测是,如果两个相同的元素之间没有空格,新的 Safari 将无法识别 mouseleave 动作。

有没有人能想到任何解决方法?

【问题讨论】:

  • 在此处将其作为浏览器错误发布:github.com/twbs/bootstrap/issues /据我所知,唯一的方法是在输入之间放置垂直空间,这是一件非常奇怪的事情。作为一种解决方法,您可以尝试在工具提示上使用 left 或 right
  • 嘿克里斯蒂安娜,我一定会这样做的!只是想在这里找到一个好的解决方法。谢谢!

标签: macos twitter-bootstrap tooltip safari8


【解决方案1】:

您可以通过添加手动触发器(例如 @play2web 用于弹出框)并在显示新提示之前删除任何工具提示来修复它,如下所示:

var showTooltip = function() {
    $('.tooltip').remove(); // This line removes any currently showing tootltips
    $(this).tooltip('show');
};
var hideTooltip = function() {
    $(this).tooltip('hide');
};
$("[data-rel='tooltip']").tooltip({
    trigger: 'manual'
}).focus(showTooltip).hover(showTooltip, hideTooltip);

缺点是您不能再使用delay 功能。

【讨论】:

    【解决方案2】:

    我个人不喜欢 boostrap tooltip,我已经创建了自定义脚本来用 popover 替换 tootlip,这里是如何使用它

    <a href="#" title="This is link">Hello</a>
    
      $(function() {
          $('[title]').attr("data-rel", "tooltip");
          $("[data-rel='tooltip']")
              .attr("data-placement", "top")
              .attr("data-content", function() {
                  return $(this).attr("title")
              })
              .removeAttr('title');
    
    
          var showPopover = function() {
              $(this).popover('show');
          };
          var hidePopover = function() {
              $(this).popover('hide');
          };
          $("[data-rel='tooltip']").popover({
              trigger: 'manual'
          }).click(showPopover).hover(showPopover, hidePopover);
    
      });
    

    【讨论】:

    • 感谢您的回答,但在 Safari 8.0 中的结果是一样的——鼠标离开时弹出框不会隐藏。
    • 你试过这样使用吗
    • 嘿,是的,我已经尝试过了,但弹出框的行为仍然与工具提示相同——它们保持可见。
    • 也许添加 $(this).popover().remove();
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-06
    • 2018-11-14
    • 1970-01-01
    • 2017-04-04
    • 2013-06-20
    • 2021-11-03
    • 2016-05-06
    相关资源
    最近更新 更多