0

我想复制下一个元素中存在的文本,但它不能正常工作: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');
        }
    });
});

我不知道为什么

4

2 回答 2

2

问题是以下语句:

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

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

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

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

这是一个工作小提琴

于 2014-07-01T12:14:06.673 回答
1

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

于 2014-07-01T12:18:06.547 回答