【问题标题】:Bootstrap tooltip lingers when attaching to body附加到主体时,引导工具提示会持续存在
【发布时间】:2014-06-19 15:49:29
【问题描述】:

在将 bootstrap 3 工具提示应用到 body 下的特定 div 时,我遇到了一个极端情况。

 $('body').tooltip({selector: '[data-tt="tooltip"]', container: '.spa > div:first-child', trigger: 'hover', delay: { show: 500, hide: 0 }, placement: function () {
     var position = this.$element.data('placement');
     if (typeof position !== 'undefined') {
       return position;
     } else {
       return 'bottom';
     }
}});

我将工具提示应用于 a、i、输入、按钮、div - 它在悬停时效果很好。当我将鼠标悬停在输入/按钮上然后单击时,然后单击 mouseout - 如果我完美地计时这个边缘情况,工具提示将粘在 dom 上。我没有要分享的网站,但我的问题是,如果不能使用工具提示跟踪每个 dom 元素的历史记录,我将如何清理 BS3-Tooltips ON BODY?

我不能简单地做一个...tooltip(...).on('click', function(this) { ...('hide'); } ..。因为上下文总是正文。而且我需要将工具提示放在该 .spa 中,以便在路由时轻松清除所有工具提示。

附:我已经尝试移除动画、延迟。

【问题讨论】:

  • 到目前为止,如果我在正文中添加一个点击事件处理程序,并以这种方式清除所有工具提示,它似乎可以解决我的边缘情况。这是有道理的,因为工具提示是在点击时停留的。

标签: jquery dom twitter-bootstrap-3 jquery-events twitter-bootstrap-tooltip


【解决方案1】:
$('body').on('click', function () {
    $('body').tooltip('hide');
}).tooltip({selector: '[data-tt="tooltip"]', container: '.spa > div:first-child', trigger: 'hover', delay: {show: 500, hide: 0}, placement: function () {
    var position = this.$element.data('placement');
    if (typeof position !== 'undefined') {
        return position;
    } else {
        return 'bottom';
    }
}});

为我工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多