Я использую Clipboard.js в проекте, который позволяет пользователю копировать текст в буфер обмена при нажатии кнопки.Clipboard.js, запускающий несколько при успешных событиях
Он отлично работает, за исключением случаев, когда я обновляю список кнопок в списке, используя jQuery, он запускает несколько событий успеха. Вот пример кода, который будет воспроизвести ошибку:
$(function() {
var data = [
'Button One',
'Button Two',
'Button Three'
];
var refreshButton = $('#refresh').on('click', function(e) {
var list = $('#buttonList');
list.empty();
for(i=0; i < data.length; i++) {
list.append('<li><button class="btn" data-clipboard-text="Copy Me">' + data[i] + '</button></li>')
}
var clipboard = new Clipboard('.btn');
clipboard.on('success', function(e) {
var n = $('body').noty({
text: 'Link copied to clipboard',
timeout: 1000,
type: 'success',
theme: 'metroui'
});
});
});
});
Я создал jsFiddle воспроизвести проблему: https://jsfiddle.net/jdfj52or/
- Сначала нажмите «список загрузки» кнопку
- Нажмите один из загруженных кнопки и вы увидите уведомление
- Нажмите «список загрузки» снова
- Нажмите одну из кнопок нагруженных и вы будете 2 уведомления
Повторите шаг 4, и он продолжит повторять больше уведомлений.
Это проблема с моим кодом?