如何将分区文本替换为“已复制!”使用 clipboard.js 单击并使其在几秒钟后消失?

How do I replace the division text with “Copied!” after clicked using clipboard.js and make it disappear after a couple of seconds?

我希望 'div' 的文本仅在几秒钟内更改为 "copied!",并在该特定时间段后恢复原始文本。

这是代码示例:

<!DOCTYPE html>
<html lang="en">

<body

<div class="row">

    <div class="box col-xs-2 btn red1 integration-checklist__copy-button" id="#E44236" data-clipboard-text="#E44236"><p>#E44236</p></div>
    <script>
        var clipboard = new ClipboardJS('.btn');

        clipboard.on('success', function(e) {
            e.clearSelection();
            e.trigger.textContent = 'Copied!';
        });

        clipboard.on('error', function(e) {
            console.info(e);
        });
    </script>

您需要使用 setInterval 来实现此目的。下面的代码在您复制文本后运行 "timer" 函数 1000 毫秒。随意将该值更改为您喜欢的任何值。

var clipboard = new ClipboardJS('.btn');

clipboard.on('success', function (e) {
    e.clearSelection();
    e.trigger.textContent = 'Copied!';

    var interval = setInterval(timer, 1000);
    function timer() {
        e.trigger.textContent = e.text;
        clearInterval(interval);
    }
});

clipboard.on('error', function (e) {
    console.info(e);
});

我们可以通过使用 jquery setTimeout 来实现,如下所示:

  clipboard.on('success', function(e) {
    $(e.trigger).text("Copied!");
    e.clearSelection();
    setTimeout(function() {

//let x = get the original text for this control and reset again after some time    
$(e.trigger).text("original text");
    }, 2500);}

我们还可以使用 jquery show hide fadeout 方法,例如:

var clip = new Clipboard('.btn');
clip.on('success', function(e) {
    $('.copied').show();
    $('.copied').fadeOut(1000);
});