单击按钮时的工具提示

use*_*737 14 javascript clipboard.js

我正在使用clipboard.js从a复制一些文本textarea,而且工作正常,但我想显示一个工具提示"复制!" 如果它被成功复制,就像在他们的网站上给出的例子中那样.

这是一个没有显示工具提示的工作示例:https://jsfiddle.net/5j50jnhj/

Zen*_*cha 35

Clipboard.js创建者在这里.所以Clipboard.js并不反对用户反馈,这意味着它没有提供工具提示解决方案.

但是这里有一个如何将它与Bootstrap的Tooltip集成的示例.

// Tooltip

$('button').tooltip({
  trigger: 'click',
  placement: 'bottom'
});

function setTooltip(message) {
  $('button').tooltip('hide')
    .attr('data-original-title', message)
    .tooltip('show');
}

function hideTooltip() {
  setTimeout(function() {
    $('button').tooltip('hide');
  }, 1000);
}

// Clipboard

var clipboard = new Clipboard('button');

clipboard.on('success', function(e) {
  setTooltip('Copied!');
  hideTooltip();
});

clipboard.on('error', function(e) {
  setTooltip('Failed!');
  hideTooltip();
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/1.5.10/clipboard.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>
<link href="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet"/>

<button class="btn btn-primary" data-clipboard-text="1">Click me</button>
Run Code Online (Sandbox Code Playgroud)

  • 如果您的页面上有一些剪贴板按钮,我认为您的解决方案并不好 (4认同)
  • 你将如何通过1页上的多个按钮来实现这一点,这些按钮都来自不同的`textarea`s? (3认同)

bin*_*ard 12

我喜欢它

HTML:

<button class="test" data-clipboard-text="1">Button 1</button>
<button class="test" data-clipboard-text="1">Button 2</button>
Run Code Online (Sandbox Code Playgroud)

JS:

$('.test').tooltip({
  trigger: 'click',
  placement: 'bottom'
});

function setTooltip(btn, message) {
  btn.tooltip('hide')
    .attr('data-original-title', message)
    .tooltip('show');
}

function hideTooltip(btn) {
  setTimeout(function() {
    btn.tooltip('hide');
  }, 1000);
}

var clipboard = new Clipboard('.test');

clipboard.on('success', function(e) {
    var btn = $(e.trigger);
  setTooltip(btn, 'Copied');
  hideTooltip(btn);
});
Run Code Online (Sandbox Code Playgroud)

使用jsfiddle链接https://jsfiddle.net/hs48sego/1/

  • 这应该是正确的答案,因为它适用于多个按钮. (3认同)
  • 这个答案更好。 (2认同)