情况描述:

刚开始用时,因为是单次点击复制按钮,只有触发一次“复制成功”事件。这里就说只弹出一次“复制成功”的窗口。

后来发现,点击复制按钮,关闭,再点击复制,会出现两次“复制成功”的弹窗。那么每多点一次复制按钮就会比前一次多一倍的窗口出现。也有些网友的是比前一次多一个窗口。

Clipboard.js 是一个将文本复制到剪贴板的插件。
https://github.com/zenorocha/clipboard.js

我的解决方法:

$(".download_btn").on("click", function () {
    // 重点。每次点击之前销毁已有的实例。
    if (clipboard) {
        clipboard.destroy();
    }
    var clipboard = new ClipboardJS('.download_btn');
    clipboard.on('success', function (e) {
        alert("复制成功");
        e.clearSelection();
        // 用完即销毁
        if (clipboard) {
            clipboard.destroy();
        }
    });
    clipboard.on('error', function (e) {
        alert("复制失败,请重试。");
        // 用完即销毁
        if (clipboard) {
            clipboard.destroy();
        }
    });
});

补充:

如果上面的方法还不能彻底解决问题,那么你的复制按钮(上例中的.download_btn)有可能也需要在每次使用完之后需要销毁,再加进来。这个就结合自己的实际情况适当做出调整了。