首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Clipboard.js循环按钮

Clipboard.js循环按钮
EN

Stack Overflow用户
提问于 2018-10-13 16:55:56
回答 1查看 264关注 0票数 1

我使用clipboard.js,在我的一个按钮点击后,我想在按钮下面显示一个成功的消息,但我无法循环通过。

这是按钮:

代码语言:javascript
复制
<button type="button" class="clipboard-button button-rect" data-clipboard-text="{{ site.author.email|safe_email }}">
  <span class="button-text">Get in touch</span>
  <span class="clipboard-message">My E-Mail has been copied</span>
</button>

这是js:

代码语言:javascript
复制
var clipboard = new ClipboardJS('.clipboard-button');

clipboard.on('success', function () {
    var message = document.querySelectorAll('.clipboard-message');
    message.style.opacity = '1';
    setTimeout(function () {
        message.style.opacity = '0';
    }, 2000);
});

我想在按下的按钮下显示信息,而不是每个按钮。

我很感激你的帮助,我已经尽力了。我是JS初学者,所以请耐心点。:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-13 17:32:55

您应该查看的是实现检索单击的DOM元素(在本例中是一个按钮)。然后很容易找到相应的.clipboard-message span元素。

要检索单击的元素,可以使用给定给success事件回调函数的参数,如下所示:https://clipboardjs.com/#events

然后,您的JavaScript代码变成:

代码语言:javascript
复制
var clipboard = new ClipboardJS('.clipboard-button');

clipboard.on('success', function (e) {
    // e.trigger corresponds to the clipboard-button DOM element that triggered the event
    // You can then use querySelector(...) to retrieve to first child element with the class clipboard-message
    var message = e.trigger.querySelector('.clipboard-message');
    message.style.opacity = '1';
    setTimeout(function () {
        message.style.opacity = '0';
    }, 2000);
});

下面是一个工作代码片段,供您尝试:

代码语言:javascript
复制
var clipboard = new ClipboardJS('.clipboard-button');

clipboard.on('success', function (e) {
    var message = e.trigger.querySelector('.clipboard-message');
    message.style.opacity = '1';
    setTimeout(function () {
        message.style.opacity = '0';
    }, 2000);
});
代码语言:javascript
复制
.clipboard-message {
    color: green;
    opacity: 0;
}
代码语言:javascript
复制
<script src="https://cdn.jsdelivr.net/npm/clipboard@2/dist/clipboard.min.js"></script>
<button type="button" class="clipboard-button button-rect" data-clipboard-text="{{ site.author.email|safe_email }}">
  <span class="button-text">Get in touch</span>
  <span class="clipboard-message">My E-Mail has been copied</span>
</button>
<button type="button" class="clipboard-button button-rect" data-clipboard-text="{{ site.author.email|safe_email }}">
  <span class="button-text">Here is your ID</span>
  <span class="clipboard-message">My ID has been copied</span>
</button>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52795227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档