jquery - GWT 项目不解释 Bootstrap 的 HTML 标记的工具提示部分

标签 jquery twitter-bootstrap gwt tooltip jquery-ui-tooltip

我目前正在 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/

相关文章:

JavaScript NoGray 日历使用带有日历的下拉框而不是输入字段和日历

jquery - 带有子菜单项的侧边栏菜单

javascript - ajax solr问题

javascript - Bootstrap v4 'hidden-xs-up' 不工作

javascript - 根据宽度(以像素为单位)缩短长文本

javascript - jQuery this.remove() -vs.- $ ('#id' .remove() 在 Internet Explorer (IE 9+)

html - 如何将标题中的图像 float 在旋转木马上

javascript - 重新组织 Bootstrap 布局 - 通过单击扩展 div 时的列排序

java - GWT SuperDevMode 无法看到更改

java - 索引越界错误