我正在使用引导程序 2.3.2。我的工具提示按预期显示,但是当悬停在触发元素上时,工具提示和触发元素都被隐藏了。有一种display:none
应用于触发元素的内联样式。
诊断为什么会发生这种情况的最佳方法是什么?我担心这可能是另一个 JS 库冲突,但我不确定如何捕获添加display:none
到触发元素的事件。
我正在使用引导程序 2.3.2。我的工具提示按预期显示,但是当悬停在触发元素上时,工具提示和触发元素都被隐藏了。有一种display:none
应用于触发元素的内联样式。
诊断为什么会发生这种情况的最佳方法是什么?我担心这可能是另一个 JS 库冲突,但我不确定如何捕获添加display:none
到触发元素的事件。
我实际上发现这是原型和 Bootstrap 2.3 之间交互的命名空间冲突。
https://github.com/twitter/bootstrap/issues/6921
最好的办法是暂时注释掉this.$element.trigger(e)
bootstrap.js 中的行,或者使用 3.0 WIP。
在 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", "");
});
});
在 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);
}
此解决方案不闪烁...
$('[data-toggle="tooltip"]').tooltip()
.on('hide.bs.tooltip', function(e) {
e.preventDefault();
$('div.tooltip').hide();
});
对于谷歌用户;对我来说,所有的答案都不起作用。所以这里是(不是最好的)但一个非常简单的解决方法:
将此添加到您的CSS:
[data-toggle="tooltip"] {
display: initial !important;
}