首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >触发clipboard.js父级

触发clipboard.js父级
EN

Stack Overflow用户
提问于 2016-01-30 13:35:03
回答 2查看 1.2K关注 0票数 2

我使用的Clipboard.js插件一个网站,并坚持问题选择唯一的父类的.copy按钮点击。

问题是,我希望用富文本格式复制pre标记中的代码,而我使用的方法很好(return document.querySelector("myClass")),但是当我用我在一个类似问题(return $(trigger).closest(".fw-code-copy").next("code").text();)中找到的代码更改前面的代码时,我可以复制每个块的代码但放松格式设置,我的意思是代码被复制为纯文本。

请您回顾一下我的代码,并建议如何找到按钮的父类。

HTML

代码语言:javascript
复制
<div class="code-snippet">
    <pre class="code">
     &lt;div&gt;
        some code
     &lt;/div&gt;
    </pre>
    <input class="copy" type="button" value="copy">
</div>

<div class="code-snippet">
    <pre class="code">
     &lt;div&gt;
        some other code
     &lt;/div&gt;
    </pre>
    <input class="copy" type="button" value="copy">
</div>

CSS

代码语言:javascript
复制
.code-snippet{
    position: relative;
    width: 100%;
    bordeR: 1px solid red;
    margin-bottom: 20px;
}
.copy{
    position: absolute;
    right: 20px;
    bottom: 20px;
}

JS

代码语言:javascript
复制
$(document).ready(function(){
    var clipboard = new Clipboard('.copy', {
        target: function() {
            return document.querySelector('.code');
        }
    });
});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-30 13:48:51

您可以通过选择器使用jQuery .closest()从祖先获取第一个元素:

JSFiddle

代码语言:javascript
复制
$(document).ready(function(){
    var clipboard = new Clipboard('.copy', {
        target: function(trigger) {
            return $(trigger).closest('.code-snippet').find('.code').get(0);
        }
    });
});
代码语言:javascript
复制
.code-snippet {
    position: relative;
    width: 100%;
    border: 1px solid red;
    margin-bottom: 20px;
}

.copy {
    position: absolute;
    right: 20px;
    bottom: 20px;
}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/clipboard.js/1.5.5/clipboard.min.js"></script>

<div class="code-snippet">
    <pre class="code">
     &lt;div&gt;
        some code
     &lt;/div&gt;
    </pre>
    <input class="copy" type="button" value="copy">
</div>

<div class="code-snippet">
    <pre class="code">
     &lt;div&gt;
        some other code
     &lt;/div&gt;
    </pre>
    <input class="copy" type="button" value="copy">
</div>

票数 3
EN

Stack Overflow用户

发布于 2016-01-30 13:50:24

我觉得这个应该管用。在目标函数中甚至不需要jQuery:

代码语言:javascript
复制
$(document).ready(function(){
    var clipboard = new Clipboard('.copy', {
        target: function(trigger) {
            return trigger.previousElementSibling;
        }
    });
});

片段:

代码语言:javascript
复制
$(document).ready(function() {
  var clipboard = new Clipboard('.copy', {
    target: function(trigger) {
      return trigger.previousElementSibling;
    }
  });
});
代码语言:javascript
复制
.code-snippet {
  position: relative;
  width: 100%;
  bordeR: 1px solid red;
  margin-bottom: 20px;
}
.copy {
  position: absolute;
  right: 20px;
  bottom: 20px;
}
.code {
  color: purple;
}
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/1.5.5/clipboard.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="code-snippet">
  <pre class="code">
     &lt;div&gt;
        some code
     &lt;/div&gt;
    </pre>
  <input class="copy" type="button" value="copy">
</div>

<div class="code-snippet">
  <pre class="code">
     &lt;div&gt;
        some other code
     &lt;/div&gt;
    </pre>
  <input class="copy" type="button" value="copy">
</div>

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

https://stackoverflow.com/questions/35102429

复制
相关文章

相似问题

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