8

我正在使用引导程序 2.3.2。我的工具提示按预期显示,但是当悬停在触发元素上时,工具提示和触发元素都被隐藏了。有一种display:none应用于触发元素的内联样式。

诊断为什么会发生这种情况的最佳方法是什么?我担心这可能是另一个 JS 库冲突,但我不确定如何捕获添加display:none到触发元素的事件。

4

5 回答 5

9

我实际上发现这是原型和 Bootstrap 2.3 之间交互的命名空间冲突。

https://github.com/twitter/bootstrap/issues/6921

最好的办法是暂时注释掉this.$element.trigger(e)bootstrap.js 中的行,或者使用 3.0 WIP。

于 2013-06-26T17:02:29.210 回答
4

在 bootstrap.js 上没有任何更改的解决方案

<span data-toggle="tooltip" data-placement="right" title="Tooltip on right">info</span>

jQuery

jQuery(document).ready(function(){
    jQuery('[data-toggle="tooltip"]').tooltip();          
    jQuery('[data-toggle="tooltip"]').on("hidden.bs.tooltip", 
         function() { 
          jQuery(this).css("display", "");
    });
});

参考

于 2015-08-17T12:22:24.393 回答
2

在 jquery.js 之后添加这个,包括

    jQuery.noConflict();

    //Remove conflict between prototype and bootstrap functions 
    if (Prototype.BrowserFeatures.ElementExtensions) {
        var disablePrototypeJS = function (method, pluginsToDisable) {
            var handler = function (event) {
                event.target[method] = undefined;
                setTimeout(function () {
                    delete event.target[method];
                }, 0);
            };
            pluginsToDisable.each(function (plugin) { 
                jQuery(window).on(method + '.bs.' + plugin, handler);
            });
        },
        pluginsToDisable = ['collapse', 'dropdown', 'modal', 'tooltip', 'popover', 'tab'];
        disablePrototypeJS('show', pluginsToDisable);
        disablePrototypeJS('hide', pluginsToDisable);
    }
于 2016-02-08T10:34:35.363 回答
1

此解决方案不闪烁...

$('[data-toggle="tooltip"]').tooltip()
.on('hide.bs.tooltip', function(e) {
    e.preventDefault();
    $('div.tooltip').hide();
});
于 2016-05-25T21:30:30.873 回答
1

对于谷歌用户;对我来说,所有的答案都不起作用。所以这里是(不是最好的)但一个非常简单的解决方法:

将此添加到您的CSS:

[data-toggle="tooltip"] {
  display: initial !important;
}
于 2017-05-08T12:08:07.737 回答