首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >优化多个元素的Javascript

优化多个元素的Javascript
EN

Stack Overflow用户
提问于 2015-04-11 13:51:25
回答 1查看 60关注 0票数 1

我需要优化这个Javascript实现,这样我就不会为每个需要调用Javascript的元素复制脚本。

下面的代码是我现在有的代码--我需要为每个类名为copy的元素调用Javascript。

代码语言:javascript
复制
<body>
    <a id="copy-1" class="copy" data-clipboard-text="hello.playcraft.com" title="Click to copy me.">Copy 1 to Clipboard</a><br />
    <a id="copy-2" class="copy" data-clipboard-text="localhost:25565" title="Click to copy me.">Copy 2 to Clipboard</a>
    <script src="/assets/js/ZeroClipboard.min.js"></script>
    <script>
        var client = new ZeroClipboard( document.getElementById("copy-1") );
        client.on( "ready", function( readyEvent ) {
        // alert( "ZeroClipboard SWF is ready!" );
            client.on( "aftercopy", function( event ) {
                // `this` === `client`
                // `event.target` === the element that was clicked
                event.target.style.display = "none";
                alert("Copied text to clipboard: " + event.data["text/plain"] );
            });
        });
    </script>
</body>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-11 13:58:12

你只需要一个函数。

代码语言:javascript
复制
function addCopyHandler(id) {
  var client = new ZeroClipboard( document.getElementById(id) );
  client.on( "ready", function( readyEvent ) {
  // alert( "ZeroClipboard SWF is ready!" );
      client.on( "aftercopy", function( event ) {
          // `this` === `client`
          // `event.target` === the element that was clicked
          event.target.style.display = "none";
          alert("Copied text to clipboard: " + event.data["text/plain"] );
      });
  });
}

addCopyHandler("copy-1");
addCopyHandler("copy-2");

然后您可以添加一个循环

代码语言:javascript
复制
for(var i = 1; i <= 10; i++) {
  addCopyHandler("copy-" + i);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29578635

复制
相关文章

相似问题

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