Я хочу объединить Bootstrap 4, ClipboardJS и всплывающие подсказки (PopperJS).
Мой код работает до сих пор: когда я нажимаю на кнопку, значение поля «data-clipboard-text» равносохранено в буфере обмена.Но всплывающие подсказки не отображаются и не скрываются, потому что я не знаю, как вставить правильную кнопку в функцию.
HTML (есть список из n кнопок с различными значениями в поле «data-clipboard-text»):
<button class="btn btn-secondary btn-sm" data-clipboard-text="25" data-toggle="tooltip" data-placement="top">Copy to clipboard</button>
<button class="btn btn-secondary btn-sm" data-clipboard-text="51" data-toggle="tooltip" data-placement="top">Copy to clipboard</button>
<button class="btn btn-secondary btn-sm" data-clipboard-text="178" data-toggle="tooltip" data-placement="top">Copy to clipboard</button>
[…]
<button class="btn btn-secondary btn-sm" data-clipboard-text="2" data-toggle="tooltip" data-placement="top">Copy to clipboard</button>
JS:
<script type="text/javascript">
// tooltip: enable all items with data-toggle=“tooltip“
$(function () {
$('[data-toggle="tooltip"]').tooltip({trigger:'click'})
});
function setTooltip(btn, message) {
$(btn).tooltip('hide')
.attr('data-original-title', message)
.tooltip('show');
}
function hideTooltip(btn) {
setTimeout(function() {
$(btn).tooltip('hide');
}, 1000);
}
// clipboard
var btns = document.querySelectorAll('button');
var clipboard = new ClipboardJS(btns);
clipboard.on('success', function(e) {
setTooltip(btns, 'Copied!');
console.log(e);
});
clipboard.on('error', function(e) {
hideTooltip(btns);
console.log(e);
});
</script>