#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. Существует несколько ссылок, к которым применяется функция копирования. Постоянный селектор не может определить, по какой ссылке пользователь нажал.