我目前正在 GWT 项目工作,希望在非常具体的情况下使用 Bootstraps 工具提示:
它是关于什么的:
该程序的一部分使用户能够进入界面。该界面包含文本框,他可以在其中输入文本。保存此文本后,可以从程序的另一个页面查看它。
重要的是:用户输入的文本可以是纯文本,也可以是随后被解释的 HTML。因此,如果用户想要显示 HTML 列表而不是执行类似的操作
- 第一项
- 第二项
- 第三项
他只需输入
<ul><li>first item</li><li>second item</li><li>third item</li></ul>
而不是纯文本。
这个例子工作得很好,样式定义也工作得很好。
问题是什么:
如果我想在与上述完全相同的界面和文本框中使用 Bootstraps 工具提示,则它不起作用。
如果我在文本框中输入以下内容
<a href="#" data-toggle="tooltip" title="Hooray!">Hover over me</a>
“悬停在我上方”显示为链接(蓝色),悬停时它会按预期添加下划线。
但是,当按住鼠标悬停时,仅显示正常标题“万岁!”,而不是 Bootstraps 标题。
我按照https://www.w3schools.com/bootstrap/bootstrap_tooltip.asp中的描述初始化了工具提示。与:
<script>
$(document).ready(function(){
$('[data-toggle="tooltip"]').tooltip();
});
</script>
此脚本位于 GWT 的底层 HTML 文件中。
如何处理:
在 GWT 项目内部,首先从文本框中获取纯字符串,然后使用该字符串创建一个 HTML Widget(动态),然后进一步显示在已经提到的其他地方。
注意:
我无法更改信息输入的方式,因为用户可以自由地输入上述信息,这一点至关重要。
为什么我需要这个:
为了也为触摸设备启用工具提示。
工具提示是否可能在错误的时间初始化? 我的意思是,工具提示在打开程序时一开始就被初始化。但要进入程序中可以看到工具提示的部分,必须单击几个界面。也许工具提示应该仅在进入/加载相应区域时才初始化?
如果有人有想法,那将会有很大的帮助。
最佳答案
简而言之 - 在将 Bootstrap 工具提示添加到 DOM 结构后,您需要初始化它们。
在 Bootstrap 中documentation您可以阅读:
For performance reasons, the Tooltip and Popover data-apis are opt-in, meaning you must initialize them yourself.
当文档准备就绪时,将调用您显示的脚本。它查找将参数 data-toggle
设置为 tooltip
值的所有元素(请参阅 documentation )。然后,对于所有此类元素,它调用 Bootstrap 工具提示 init 函数。如果您添加新的工具提示,它不会自动初始化。
您可以使用此方法初始化新的工具提示:
private native void initTooltips() /*-{
$wnd.jQuery("[data-toggle='tooltip']").tooltip();
}-*/;
关于jquery - GWT 项目不解释 Bootstrap 的 HTML 标记的工具提示部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43964349/