【问题标题】:Bootstrap tooltip to show on click but hide on mouse out引导工具提示在点击时显示,但在鼠标移出时隐藏
【发布时间】:2021-05-30 21:35:59
【问题描述】:

我有一个将文本复制到剪贴板的按钮,当用户单击该按钮以指示文本已成功复制时,我需要显示引导工具提示。

<a onclick="copyText()" role="button" data-toggle="tooltip" data-theme="dark" data-trigger="click" title="Link Copied">
    <i class="fas fa-share-alt"></i>
</a> 

但是我不希望用户再次单击按钮来隐藏工具提示,因为这会不必要地再次复制文本。相反,我只想在用户点击离开或将光标移出按钮时隐藏工具提示。

有可能吗?

【问题讨论】:

    标签: bootstrap-4 twitter-bootstrap-tooltip tooltipster


    【解决方案1】:

    您可以使用 Bootstrap Methods 和 Events API,如下所示。

    function copyText() {
      // do something...
    }
    
    $(function() {
      $('[data-toggle="tooltip"]').tooltip();
      $('[data-toggle="tooltip"]').on('show.bs.tooltip', function() {
        $(this).on('mouseleave', function() {
          $(this).tooltip('hide');
        });
      });
    });
    body {
      padding: 3rem
    }
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.2/css/all.min.css" integrity="sha512-HK5fgLBL+xu6dm/Ii3z4xhlSUyZgTT9tuc/hSrtw6uzJOvgRr2a9jyxxT1ely+B+xFAmJKVSTbpM/CuL7qxO8w==" crossorigin="anonymous" />
    <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ho+j7jyWK8fNQe+A12Hb8AhRq26LrZ/JpcUGGOn+Y7RsweNrtN/tE3MoK7ZeZDyx" crossorigin="anonymous"></script>
    
    <a onclick="copyText()" role="button" data-toggle="tooltip" data-theme="dark" data-trigger="click" title="Link Copied">
      <i class="fas fa-share-alt"></i>
    </a>
    
    <hr>
    
    <h4>It supports multiple elements</h4>
    
    <a onclick="copyText()" role="button" data-toggle="tooltip" data-theme="dark" data-trigger="click" title="Link Copied">
      <i class="fas fa-share-alt"></i>
    </a>
    <a onclick="copyText()" role="button" data-toggle="tooltip" data-theme="dark" data-trigger="click" title="Link Copied">
      <i class="fas fa-share-alt"></i>
    </a>
    <a onclick="copyText()" role="button" data-toggle="tooltip" data-theme="dark" data-trigger="click" title="Link Copied">
      <i class="fas fa-share-alt"></i>
    </a>

    【讨论】:

    • 谢谢,效果很好。但我失去了黑暗主题的工具提示。不知道为什么!
    • 其实我意识到我们不需要tooltip()方法来打开tooltip。我刚刚评论了$('[data-toggle="tooltip"]').tooltip(); 这一行,它与data-trigger 配合得很好,它以深色主题显示。
    • 如果没有触发器,通常你应该使用这个$('[data-toggle="tooltip"]').tooltip();。如果您引用了data-trigger,则无论如何都不需要它。一切都好吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-08
    • 2016-05-06
    • 1970-01-01
    • 1970-01-01
    • 2013-06-20
    • 1970-01-01
    • 2022-11-03
    相关资源
    最近更新 更多