带有手动触发器和选择器选项的 Bootstrap 工具提示

2024-01-17

我有一个动态表,加载了ajax。我想当我将鼠标悬停在某个对象上时显示工具提示row,但我希望工具提示出现在某个特定的位置上cell(与类.name)而不是在整行上方。

另外,使用 title 函数,我需要能够获取最接近的行 ID 并返回自定义模板。

这是我的代码:

<table class="table" id="myTable">
    <thead>
        <tr>
            <th>ID</th>
            <th>Name</th>
            <th>Country</th>
            <th>Statistics</th>
        </tr>
    </thead>
    <tbody>
        <tr id="1">
            <td >1</td>
            <td class="name">Name #1</td>
            <td>United States of America</td>
            <td>100%</td>
        </tr>
        <tr id="2">
            <td >2</td>
            <td class="name">Name #2</td>
            <td>United States of America</td>
            <td>50%</td>
        </tr>
    </tbody>
</table>

初始化:

$('#myTable').tooltip({
    container: 'body',
    html: true,
    selector: 'td.name',
    trigger: 'manual',
    title: function() {
        // here will be custom template
        var id = $(this).parent().atrr('id');
        return id;
    }
});

尝试一:jsFiddle 中的演示 http://jsfiddle.net/tLs3G/

$('#myTable')
    .on('mouseenter focusin', 'tbody > tr', function() {
        $(this).find('td.name').tooltip('show');
    })
    .on('mouseleave focusout', 'tbody > tr', function() {
        $(this).find('td.name').tooltip('hide');
    });

尝试二:jsFiddle 中的演示 http://jsfiddle.net/tLs3G/1/

var tip;
$('#myTable')
    .on('mouseenter focusin', 'tbody > tr', function() {
        tip = $(this).find('.offer-name');
        tip.tooltip(hereAllTooltipOptions);
        tip.tooltip('show');
    })
    .on('mouseleave focusout', 'tbody > tr', function() {
        tip.tooltip('hide');
    });

但我对这种解决方案的性能非常好奇。那么,问题是如何去做,并且做得更好?


这里的问题是你不能使用selector选项时trigger被设定为manual. The 当引导程序处理触发事件时,选择器用于委派 https://github.com/twbs/bootstrap/blob/0268b41c4f93e8f85c44a9ee2c8177c076c61ede/js/tooltip.js#L60,但你已经明确表示你将是处理委托的人,所以它忽略selector setting https://github.com/twbs/bootstrap/blob/0268b41c4f93e8f85c44a9ee2c8177c076c61ede/js/tooltip.js#L70.

这意味着我们获得nothing使用这样的代码进行预初始化:

$('.parent').tooltip({
    selector: '.child',
    trigger: 'manual'
})

它只是说我想设置工具提示.child元素,但不要对此做任何事情,因为我稍后会处理它。

没关系,这就是我们使用时想要做的manual。我们将决定何时显示或隐藏工具提示。

让我们看一下一个简单的例子:

$('#myTable').on({
    'mouseenter': function() {
        $(this).find('td.name').tooltip('show');
    },
    'mouseleave': function() {
        $(this).find('td.name').tooltip('hide');
    }
},'tbody > tr');

js Fiddle 中的演示 http://jsfiddle.net/KyleMit/xpeLr/2/

然而,这在这种情况下不起作用,因为我们想要动态生成工具提示。当我们打电话时.tooltip('show')对于特定元素,引导程序会查看该元素以查看它是否已初始化或具有标题。上面的示例有效,因为我已经在标题中进行了硬编码,但是如果我们想首先初始化此工具提示,我们将如何使用它?

只需在显示工具提示之前即时初始化,如下所示:

$('#myTable').on({
    'mouseenter': function() {
        $(this).find('td.name')
            .tooltip({
                container: 'body',
                html: true,
                trigger: 'manual',
                title: function() {
                    return this.parentNode.id;
                }
            }).tooltip('show');
    },
    'mouseleave': function() {
        $(this).find('td.name').tooltip('hide');
    }
},'tbody > tr');

因此,您不会在每次悬停时产生初始化成本,您可以将初始化包装在 if 语句中检查是否已经初始化 https://stackoverflow.com/a/24982555/1366033像这样:

var $cell = $(this).find('td.name');
if (!$cell.data("bs.tooltip")) {
    $cell.tooltip({ /* options */ });
}
$cell.tooltip('show');

jsFiddle 中的演示 http://jsfiddle.net/KyleMit/xpeLr/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带有手动触发器和选择器选项的 Bootstrap 工具提示 的相关文章

  • 如何在bootstrap中默认隐藏侧边栏?

    我在这里有一个很好的参考 作为 Bootstrap 在设计 Web 表单应用程序时的侧边栏 http startbootstrap com template overviews simple sidebar http startbootst
  • 在多个动态添加的表单上初始化 jQuery validate() 函数

    有人建议最好初始化一个 form validate 在页面加载而不是点击事件上运行 jquery form validate 插件仅允许在输入更改时提交 https stackoverflow com questions 10984196
  • 如何覆盖 bootstrap 表 td 样式?

    我正在使用 Bootstrap 3 3我有一个 HTML 代码如下 div table class table table striped tr td 03 td td 04 td td 05 td td 06 td td 07 td td
  • Twitter bootstrap 3表单水平和单行多个输入列

    我需要将多列输入放在单行中 如下所示 我通过将多个输入分组为一个来做到这一点form group 但是这样我不能使用has error class div class form group div
  • 如何取消 AjaxForm 上的提交

    我正在使用 jQuery 插件 ajax 形式 我尝试实现这样的东西 MyFormID ajaxForm dataType json resetForm true beforeSubmit function validateData ret
  • 使用 AJAX 和 JQuery 按设定的时间间隔刷新 Rails 部分

    I have a page in my rails application that looks like 现在 我有另一个用 python 编码的人工智能应用程序 它处理视频 显示在 Rails 应用程序页面的左侧 并使用捕获的车辆及其相
  • JQuery 删除和内存泄漏

    我正在开发一个游戏 我看到了很多内存消耗 我使用jquery animate 动画完成后 我 remove 元素 我的问题是 从 dom 树中删除一个元素后 对象还存在记忆中吗 Javascript 是一种垃圾收集语言 这意味着当没有代码保
  • jQuery Find() 和 XML 在 IE 中不起作用

    我正在尝试使用 jQuery 来解析内存中的 XML 文档 除了 IE 之外 这在所有东西上都很有效 令人震惊 一些谷歌搜索显示 问题很可能是由于 IE 将我的文档视为 HTML 而不是 XML MIME 类型 有没有办法让我的 jQuer
  • jquery select 如果 option.value 等于某个值,则标记为选中

    我有一些关于 jquery 选择的问题 就我而言 如果option value等于某物 标记 aselected为了它 在线代码在这里 http jsfiddle net WnEfJ 再次重复代码 它引起了Uncaught TypeErro
  • 如何禁用“您是否只想查看安全传送的网页内容”警告?

    我的网站有完整的 https 及其使用外部 jquery 资源 即 http 在 IE 8 中 当我重定向网站时 它给了我 您只想查看安全传送的网页内容 警告 如何避免这种情况 有没有可用的脚本可以解决这个问题 提前致谢 似乎有两个可能的问
  • 下划线反跳与参数

    假设我有这个事件处理程序 var mousewheel function e blah 但是 我想消除它 所以我这样做 它按预期工作 var mousewheelDebounced debounce mousewheel 500 docum
  • VBA / HTML / jQuery 选择自动完成 - 在列表中选择

    我正在尝试使用 Excel 中的 VBA 在网站的列表中选择一个值 这不是一个 正常列表 该网站使用 jQuery 选择自动完成 如下所示 example http davidwalsh name demo jquery chosen ph
  • 在网页上的文本框中键入内容时删除所有空格

    我如何在用户打字时即时删除输入到文本框中的空格 function var txt myTextbox var func function txt val txt val replace s g txt keyup func blur fun
  • jQuery 选择 # id 以单词为前缀,计数器为后缀

    有没有办法用 jQuery 选择所有带有前缀 my 和后缀 0 9 的 id 像这样的 my 1 4 还是可以用循环来实现 div div div div div div div div div div 第一个想法 似乎效果很好 div i
  • jquery window.open 在 ajax 成功中被阻止

    尝试在我的 ajax 成功调用中打开一个新的浏览器窗口 但是 它被阻止为弹出窗口 我做了一些搜索 发现用户事件需要绑定到 window open 才能避免这种情况发生 我还找到了这个解决方案 您可以在 ajax 之前打开一个空白窗口 然后在
  • 按百分比设置 bootstrap 模态身高

    我正在尝试制作一个带有主体的模态 当内容变得太大时 该主体会滚动 但是 我希望模式能够响应屏幕尺寸 当我将最大高度设置为 40 时 它没有任何效果 但是 如果我将最大高度设置为 400px 它会按预期工作 但不会响应 我确信我只是错过了一些
  • 未捕获的错误:找不到模块“jquery”

    我在用Electron https github com atom electron制作桌面应用程序 在我的应用程序中 我正在加载一个外部站点 Atom 应用程序之外 可以说http mydummysite index html http
  • 使用流体网格系统在引导程序上对齐输入

    我正在创建一个表单 要求用户输入他们的姓名和电子邮件地址 表单的第一行对于姓名的每个部分都有两个并排的输入 第二行对于电子邮件地址有一个输入 其宽度应与第一行组合的宽度相同 我正在尝试使用流体网格系统 但无法将第二行与第一行对齐
  • Jquery - 通过在字符串中构建 id 的 id 获取元素

    我在使用 jquery 元素时遇到问题 我正在 var 中构造名称 例如 var myId myGotId myId attr title changed myId 返回空 我想通过 id 获取我的元素 但动态构建我的 Id 连接字符串 编
  • 单击引导分页链接时调用 jquery 函数

    我想在单击引导分页链接时调用 jquery 函数 假设我想从第1页遍历到第2页 应该调用一个jquery函数 我正在使用以下代码 但它不起作用 ul pagination on click li function alert page ch

随机推荐

  • 使用 NSBorderlessWindowMask 时出现灰色边框

    每当我尝试使用 NSBorderlessWindowMask 创建自定义窗口并将 NSView 例如 NSImageView 设置为其 contentView 时 我都会在 NSView 周围出现 1px 灰色边框 并且似乎无法摆脱它 我遵
  • 将多个文件中的空格转换为制表符 Sublime Text 2

    有没有办法将所有空格转换为制表符 而不是逐个文件转换 如果我打开一个文件并浏览View gt Indentation gt Convert Indentation to Tabs 它仅更改此文件 我想将整个项目中的缩进转换为制表符 Use
  • 如何在 django 中提供创建的临时文件

    我有一个远程存储项目 当用户请求他的文件时 django 服务器会在本地检索该文件 用于某些处理 并将其存储为临时文件 然后使用 mod x sendfile 将其提供给用户 我当然希望临时文件在提供给用户后被删除 文件指出NamedTem
  • Flutter,如何删除对话框周围的空白?

    我在从服务器获取数据时调用此对话框 该对话框周围有空格 我可以删除对话框周围的空白区域吗 这是我的代码 var bodyProgress new Container decoration new BoxDecoration color Co
  • 使

    我在 SO 上看到过类似的主题 但我的略有不同 我试图让我的父级 DIV 和子级 保持焦点 直到我将注意力从 div 上移开 但这似乎很难完成 This solution https stackoverflow com a 3089045
  • 使用 Cocoa 的 Accessibility API 获取应用程序的 Dock 图标的位置

    如何使用 Accessibility API 获取应用程序的 Dock 图标的位置 找到了 使用这个论坛帖子 http cocoadev com forums discussion 1431 getting dock icon positi
  • Elasticsearch.Net 和超时

    我有一个 4 节点的 Elasticsearch 集群 我有一个 net 控制台应用程序 旨在用来自 sql 的数据填充集群 只要我将添加 或删除 记录的速度保持在相当低的水平 一切都会正常 如果我最终增加线程数 我将从控制台应用程序中看到
  • 无法在 AngularJS 中从控制器设置日期选择器日期

    我正在尝试按按钮创建一个 AngularJS 日期选择器 我在用this http angular ui github io bootstrap datepickerbootstrap ui 控件 该控件可以工作 单击按钮就会弹出 我可以选
  • 通过 Go (go 1.18) 泛型创建类型化值的新对象

    我正在 go 1 18 的 beta 版本中使用泛型 下面示例中的创建函数应该创建新的实例 T 所以 Apple 我尝试使用反射包来实现这一点 但没有运气 你能告诉我如何更改功能吗Create从下面的示例中 它创建了实例T而不是返回 nil
  • 将所有代码从 master 转移到新分支并从 master 中删除代码

    我的代码位于项目的主分支中 我希望代码位于单独的分支中 而不是在主分支中 我可以创建一个新的分支master 但是在创建分支之后 是否可以从主分支中删除所有代码 这样如果我稍后重新调整或将我的新分支合并到主分支中 就不会导致任何问题 谢谢
  • NodeJS javascript 中的异步响应循环

    我有一个使用 Express 4 的 NodeJS API 我使用 Sequelize 连接到数据库 并多次调用一个查询 我想将结果累积到一个数组中 问题是res send不等待循环结束来发送答案 my code router post p
  • 具有 SSE4.1 内在函数的双线性滤波器

    我现在正在尝试找出一种一次仅针对一个过滤样本的相当快速的双线性过滤函数 作为习惯使用内在函数的练习 最高可达 SSE41 就可以了 到目前为止我有以下内容 inline m128i DivideBy255 8xUint16 const m1
  • 查找 XML 节点集的最低公共祖先

    我有一个使用 XSLT 中的 xsl key 结构构造的节点集 我想找到该节点集中所有节点的最低共同祖先 LCA 有什么想法吗 我了解 Kaysian intersects 和 XPath 的 intersect 函数 但这些似乎是为了找到
  • Celery + SQS 两次接收相同的任务,同时具有相同的任务 ID

    在 Flask 应用程序中使用带有 SQS 的 celery but celery 同时接收两次具有相同任务 ID 的相同任务 像这样运行工人 celery worker A app jobs run l info pidfile var
  • 使用 TKAgg 的 Matplotlib、Pylab:在 win32 上使用 plt.ion() 时遇到 PyEval_RestoreThread: NULL tstate

    EDIT 呸 终于找到了关于Runtime Error的讨论 虽然重点是使用PythonWin 而我当时还没有安装 安装 PythonWin 并设置 GTK 后 按照先前的问题 https stackoverflow com questio
  • Git:将提交合并到不同的分支中

    所以我有3个分支 develop 我的持续开发分支 version 1 一个发布分支 version 2 一个发布分支 我必须做一个修补程序version 2要重新发布该版本 需要在 2 个文件中进行 2 行更改 非常小 我想将该修复应用于
  • 文件类型 - 获取原始扩展名

    如果文件已重命名 如何查找文件扩展名 有没有可用的工具 示例 我有一个文件 1 doc 我希望大家知道这是一个我刚刚重命名为 1 txt 的Word文档 但该文件原本是Word文档 如何获得原始文件扩展名 当然可以 这是适合您的 C 代码
  • 如何隐藏 Chrome 中 HTML5
    元素上默认显示的箭头?

    现在还为时过早 但我也知道你们已经掌握了一切 我想使用HTML5 详细信息元素 http www w3 org TR html5 interactive elements html the details element
  • XSS 酷刑测试 - 它存在吗?

    我正在寻找编写一个 html 清理程序 显然为了测试 证明它可以正常工作 我需要一组 XSS 示例来对抗它 看看它的性能如何 这是一个 编码恐怖 中的好例子 http www codinghorror com blog archives 0
  • 带有手动触发器和选择器选项的 Bootstrap 工具提示

    我有一个动态表 加载了ajax 我想当我将鼠标悬停在某个对象上时显示工具提示row 但我希望工具提示出现在某个特定的位置上cell 与类 name 而不是在整行上方 另外 使用 title 函数 我需要能够获取最接近的行 ID 并返回自定义