1
Я пытаюсь сделать некоторые действия на кнопки пользователь мыши:.Clipboardjs не работает внутри jQuery.get() сделано()
- Получить некоторые данные с сервера с помощью JQuery AJAX вызова.
- При успешном использовании, сохраните эти данные us button attributes
data-clipboard-text
значение. - Скопируйте это значение в буфер обмена с помощью clipboardjs.
Проблема: шаг 3 отлично работает вне jQuery.get().done()
с использованием фиктивного текста, но не внутри done()
. Это не то, что я ожидаю, потому что clipboardjs запускает копию, пока нет целевого значения.
(function ($) {
var root = {};
root = {
get_client_addresses_from_server: function (btn) {
var url = btn.attr('data-src');
$.get(url, function (data) {
}
).done(function (data) {
btn.attr('data-clipboard-text', data.text);
// here clipboardjs is unable to copy
var clipboard = new Clipboard('.btn', {
text: function (trigger) {
return trigger.getAttribute('data-clipboard-text');
}
});
clipboard.on('success', function (e) {
console.info('Action:', e.action);
console.info('Text:', e.text);
console.info('Trigger:', e.trigger);
e.clearSelection();
});
clipboard.on('error', function (e) {
console.error('Action:', e.action);
console.error('Trigger:', e.trigger);
});
});
},
};
$('#client-action-form .form-actions button[value="copy_addresses"]').click(function (event) {
event.preventDefault();
root.get_client_addresses_from_server($(this));
});
})(jQuery);