Как указать контейнер для clipboard.js?

Есть популярный плагин для копирования текстовой информации в буфер обмена clipboard.js. В процессе его использования пользователи заметили, что он не работает внутри модальных окон из-за изменения ими фокуса. Поэтому автор плагина добавил в него опцию container, позволяющую указывать в качестве цели модальное окно. Пример из документации:
new ClipboardJS('.btn', {
    container: document.getElementById('modal')
});

Вопрос: можно ли каким-то образом указать в качестве контейнера родителя кнопки, по которой кликнули?
Вот так срабатывает, но со 2-го раза.
$('.btn').on('click', function(e) {
  var el = e.target;
  var container = $(el).closest('.popup').get(0);

  var clipboard = new ClipboardJS(el, {
    container: container
  });
});


Как сделать правильно?
  • Вопрос задан
  • 51 просмотр
Решения вопроса 1
@SergeiB Автор вопроса
Похоже, такой вариант рабочий:
// Инициализируем плагин сразу
var clipboard = new ClipboardJS('.btn');
// Назначаем опцию при клике на кнопку, передавая ей требуемый элемент
$('.btn').on('click', function(e) {
  clipboard.container = $(e.target).closest('.popup').get(0);
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы