gpt4 book ai didi

javascript - Bootstrap 工具提示/弹出窗口关闭导致 HTML 元素被隐藏

转载 作者:行者123 更新时间:2023-11-28 07:13:58 25 4
gpt4 key购买 nike

由于某种原因,在我的一个项目中,Tooltip.prototype.leave 函数中的以下 Bootstrap.js Tooltip/Popover 代码导致我的图标在关闭提示/popover 时消失(设置为显示:无)。

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)

我正在按照建议实现弹出窗口:

<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 示例中您会看到 $j 表示 jQuery 的语法。

我已经尝试将 bootstrap.js 本地副本中的所有 $ 调用替换为 $j 调用,但没有解决问题。任何解决此问题的帮助将不胜感激。

最佳答案

替换 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;
}
}

基本上,它将“inState”设置为“false”,因此当发生悬停时,它会继续执行其他代码而不是返回。继续的代码是设置工具提示隐藏。

关于javascript - Bootstrap 工具提示/弹出窗口关闭导致 HTML 元素被隐藏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31037454/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com