【问题标题】:Bootstrap popover inside textbox文本框内的引导弹出窗口
【发布时间】:2025-04-04 19:30:01
【问题描述】:

我正在使用jquery-tokeninput library 并在文本框中创建自定义标记。我有一个奇怪的要求,我想在输入标记之后/期间在文本框的剩余部分显示bootstrap popover。当您将鼠标悬停在标记后的文本框空白区域内时,它将显示出来。

我最初的想法是在文本框内使用一个空的 div 并在其上使用一个弹出框。不确定这是否是正确的方法。但同样,弹出框将附加到 div 中的一个点。

我没有附加任何代码,因为这里更多的是方法而不是代码。

【问题讨论】:

  • 当您说“文本框的剩余部分”时,您是指附加到问题的图像,还是希望将弹出框移动到直接显示在文本框上方,而不是上面?
  • 它实际上与我附上的图像完全相似。弹出框的尖端应该在文本框内。我将在文本框中放置标记(带有它们自己的弹出框)。文本框的剩余部分是使用标记后剩下的任何空间。当您将鼠标悬停在标记后的文本框空白区域内时,将显示弹出框。

标签: jquery css jquery-tokeninput bootstrap-popover


【解决方案1】:

好吧,我刚刚检查了demo page for that library,我注意到当你添加标记时,库只是在最后一个之前插入一个新的 li 元素。最后一个始终具有“token-input-input-token”的默认 id,因此您可以将该元素定位为弹出框的锚点。

$('#token-input-input-token').popover({content: "Your content here"})

【讨论】:

  • 是的,你是对的@Steve,这是一种解决方案。但我使用的是 Instant Demo 中所示的示例,其中用于编辑的实际 li 大约是文本框的 20%。所以我想我需要用 div 的其余部分创建另一个 li 并在其上附加弹出框。这是我最初的解决方案,我不确定是否存在更好的解决方案。感谢您花时间回答。
  • 如果您希望li 的宽度填充父文本框的其余部分,您可以通过监听onAdd 事件添加一些简单的JS 代码来实现。 onAdd: function (item) { // Recalculate width of li element here }
【解决方案2】:

你可以用bootstrap popover来实现,

$(document).ready(function(){
$("textarea").hover(function () {
	$(".Pops").popover("show");
},function () {
	$(".Pops").popover("hide");
});
$(".Pops").popover({
	//Anything optional
})
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" />

<div class="delme" style="margin-top: 100px;"></div>
<div class="row">
    <div class="col-xs-12">
        <label>This is Textarea</label>
<div class="Pops" data-content="The questions above are required.  Please go back and answer them completely." data-title="TextArea Heading" data-placement="top" ></div>
        <div class="form-group">
            <textarea placeholder="Type Something to See It in Action" class="form-control"></textarea>
        </div>
    </div>
</div>

Fiddle

【讨论】:

  • 当您将鼠标悬停在文本框中的空白区域内时,我希望仅在空白文本区域上显示弹出框。感谢您花时间回答。
  • 你可以把这个函数on("change keyup", function()改成.hover( function ()
最近更新 更多