由于某些原因,在我的一个项目中,Tooltip.prototype.leave函数中的以下Bootstrap.js Tooltip / Popover代码在解除tip / popover时导致我的图标消失(设置为display:none)。 / p>
if (!self.options.delay || !self.options.delay.hide) return self.hide()
self.timeout = setTimeout(function () {
if (self.hoverState == 'out') self.hide()
}, self.options.delay.hide)
我按照建议实施了popover:
<script type="text/javascript" charset="utf-8">
$j(document).ready(function() {
console.log($j('.help-popover'));
$j('.help-popover').popover({
placement: 'top'
});
});
</script>
<a tabindex="0" class="help-popover glyphicon glyphicon-question-sign" role="button" data-toggle="popover" data-trigger="focus" title="Help" data-content="Lorem ipsum dolor sit amet consetetur sadipscing elitr sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat sed."></a>
我对原因的一些猜测是它与项目相关还需要使用Prototype.js的旧副本,因此也使用js_noconflict.js,这就是为什么在上面的html示例中你看到{{ 1}}表示jQuery的语法。
我已经尝试在bootstrap.js的本地副本中替换对$j
次调用的所有$
次调用而不解决问题。任何帮助解决这个问题都将非常感激。
答案 0 :(得分:0)
将Bootstrap.js第1404行替换为
//if (obj instanceof $.Event) {
// self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false
//}
要
//09-04-2016 Jay Bhavsar Changed condition if it is hover out then set instate as true
//if (obj instanceof $.Event) {
// self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false
//}
if (obj instanceof $.Event) {
if (obj.type == 'focusout') {
self.inState['focus'] = false;
}
else {
self.inState['hover'] = true;
}
}
基本上是设置&#34; inState&#34;到&#34;假&#34;所以当鼠标悬停时,它会继续使用其他代码而不是返回。继续的代码是设置工具提示隐藏。