zclip 复制元素中存在的下一个文本

Posted

技术标签:

【中文标题】zclip 复制元素中存在的下一个文本【英文标题】:zclip copy next text present in element 【发布时间】:2014-07-01 11:29:33 【问题描述】:

我想复制出现在下一个元素中的文本,但它不能正常工作: http://jsfiddle.net/tj7ZX/8/

$(document).ready(function () 

    $('.copy').zclip(
        path: 'http://www.steamdev.com/zclip/js/ZeroClipboard.swf',
        copy: $(this).next().text(),
        beforeCopy: function () 
            $(this).next().css('background-color', 'grey');
            $(this).children().css('background-position', '-108px -90px');
        ,
        afterCopy: function () 
            $(this).children().css('background-position', '-54px -37px');
        
    );
);

我不知道为什么

【问题讨论】:

【参考方案1】:

问题出在以下语句:

copy: $(this).next().text()

当您致电zclip 时,它将被应用一次。在那个时间点,this 等于 document。换句话说,一旦页面准备就绪,每个.copy 都会被告知复制document 的下一个兄弟的文本,这自然不存在。

我们需要做的是传递copy一个函数,在这个函数中我们可以在.copy被点击时动态抓取下一个元素的文本:

copy: function() 
    return $(this).next().text();

这是一个有效的fiddle。

【讨论】:

【参考方案2】:

尝试使用选择器代替 copy: $(this).next().text() 中的 $(this)。

【讨论】:

有多个应用复制功能的链接。常量选择器无法确定用户点击了哪个链接。

以上是关于zclip 复制元素中存在的下一个文本的主要内容,如果未能解决你的问题,请参考以下文章

jquery.zclip复制内容(相当于crtl+c)

实用的插件:跨浏览器复制jQuery-zclip

xml 中具有相同元素名称的下一个节点

JQery插件clipboard.js ----将文本复制到剪贴板的现代化方法

js插件zClip实现复制到剪贴板功能

[Leetcode]下一个更大元素II