目前我有以下结构
<OverlayTrigger trigger={["hover", "focus", "click"]} placement="bottom" overlay={(
<Popover className="timeline-popover-container" id="tpc-1">
<TimelinePopover
alert={session}
previousAlert={prevSession}
nextAlert={nextSession}
status={status}
/>
</Popover>
)}>
<div className="myclass">
<div>{img}</div>
</div>
</OverlayTrigger>
所以,当弹出窗口被触发并且我试图将鼠标悬停在popover上时,popover消失。 我希望能够点击内部的弹出窗口,做一些内部的事情,当我将鼠标移出它时就消失了。
答案 0 :(得分:2)
我设法使用ochi发布的评论之一来完成这项工作。
<OverlayTrigger trigger={["hover"]} placement="bottom" overlay={(
<Popover onMouseOver={this.showOverlay} onMouseOut={this.hideOverlay}>
content
</Popover>
)}>
<div onMouseOver={this.showOverlay} onMouseOut={this.hideOverlay}>
<div>bla bla bla</div>
</div>
</OverlayTrigger>
在弹出窗口和div上添加触发器我想触发工作。
答案 1 :(得分:1)
我希望使用React Bootstrap做同样的事情,除了使用工具提示而不是弹出窗口。这里的答案给了我一个很好的跳跃点,我将其与React Bootstrap文档中的Custom Overlay示例混合。
我将OverlayTrigger
替换为自定义Overlay
,其中包含Tooltip
但在目标元素之外,而OverlayTrigger
包装目标元素并调用{{ 1}}通过Tooltip
道具。我在工具提示和目标元素中添加了overlay
和onMouseEnter()
来切换工具提示可见性状态,以便留下任何一个将关闭工具提示。
这是我的实施的一个简单版本:
onMouseLeave()
答案 2 :(得分:1)
我做了一些处理这个用例的工作(从@AnnieP的回答中得到启发)。 https://gist.github.com/lou/571b7c0e7797860d6c555a9fdc0496f9
用法:
<PopoverStickOnHover
component={<div>Holy guacamole! I'm Sticky.</div>}
placement="top"
onMouseEnter={() => { }}
delay={200}
>
<div>Show the sticky tooltip</div>
</PopoverStickOnHover>