zclip скопируйте следующий текст, присутствующий в элементе

#jquery #text #copy #next #zclip

#jquery #текст #Копировать #Далее #zclip

Вопрос:

Я хотел бы скопировать текст, присутствующий в следующем элементе, но он не работает нормально: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();
}
  

Вот рабочая скрипка.

Ответ №2:

Попробуйте использовать селектор вместо $ (this) в copy: $(this).next().text() .

Комментарии:

1. Существует несколько ссылок, к которым применяется функция копирования. Постоянный селектор не может определить, по какой ссылке пользователь нажал.