【问题标题】:Bootstrap 4 tooltip use custom attribute other than title to provide the text for the tooltipBootstrap 4工具提示使用标题以外的自定义属性为工具提示提供文本
【发布时间】:2020-03-11 00:32:56
【问题描述】:

我有一个应用程序,我在其中使用带有工具提示的 Bootstrap 4。我想一一切换工具提示并仅在单击时显示它们。我可以这样做:

 <input type="text" id="name" class="form-control" autocomplete="off" 
 data-toggle="tooltip" data-placement="bottom" title="Write name here.">

我正在使用以下在按钮单击时触发的 javascript 单独显示工具提示:

 $('#name').tooltip("show");

我使用以下脚本隐藏/处理它:

 $('#name').tooltip("dispose");

我使用 dispose 的原因是因为我不希望工具提示可见,除非按下按钮。

问题在于,当鼠标悬停在输入字段上时,浏览器(在我的情况下为 Firefox 开发者版)会以自己的样式显示工具提示,因为工具提示文本位于 title 属性中。

有没有办法在引导程序中保留要显示在另一个 data-tooltiptitle 属性中的文本,例如:

<input type="text" id="name" class="form-control" autocomplete="off" 
data-toggle="tooltip" data-placement="bottom" data-tooltiptitle="Write name here.">

然后可能会告诉工具提示使用一些 jQuery 对文本使用 data-tooltiptitle 属性。

感谢任何帮助。

【问题讨论】:

    标签: javascript jquery html css bootstrap-4


    【解决方案1】:

    您可以使用title 选项并将其设置为函数。在悬停时,将使用悬停元素的实例调用此函数。使用getAttribute,您可以获取自定义属性。

    $(document).ready(function() {
      $('[data-toggle="tooltip"]').tooltip({
        title: function() {
          return 'No Hooray!!';
        }
      });
      $('#link').tooltip({
        title: function() {
          return this.getAttribute('custom-title');
        }
      });
    });
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
    
    <a href="#" data-toggle="tooltip" custom-title="Hooray!">Hover over me</a>
    
    <input type="text" id="link" custom-title="Hooray!">

    【讨论】:

    • 感谢您的解决方案,但这不适用于我的问题。该代码适用于$('[data-toggle="tooltip"]'),但不适用于特定的id 选择器$('#link')。这是我的小提琴jsfiddle.net/coolakul/mfLjykb0。就像我说的那样,这只需要在id选择的单个元素上起作用。
    • 逻辑没有问题,请将id="#link"改为id="link"。我还用id 更新了答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-05
    • 2019-05-28
    • 2013-04-13
    • 1970-01-01
    • 2018-01-12
    • 1970-01-01
    • 2020-05-14
    相关资源
    最近更新 更多