Переназначить функциональность Clipboad JS после функции загрузки jQuery - PullRequest
0 голосов
/ 11 февраля 2020

Веб-сайт моего клиента использует буфер обмена JS на кнопках для копирования URL-адресов. Это работает правильно при начальной загрузке страницы, но не при загрузке дополнительного содержимого с помощью функции jQuery .load(). Когда кнопки проверяются в консоли после запуска функции .load(), события из них удаляются.

Действующий URL для проверки: https://knowideasmedia.ca/holmes-agro. Используйте навигацию «Past Sendouts», чтобы перейти к «8 Tips». После загрузки содержимого попробуйте скопировать один URL-адрес с помощью желтой кнопки «Копировать URL».

jQuery функция

e( ".sendout-link" ).click(function() {     
    e( ".btn--nav-trigger" ).toggleClass( "btn--nav-trigger-active" );
    e( ".sendout__list" ).toggleClass( "sendout__list--open" );
    var post_url = e( this ).attr( "href" );
    e( "#sendout-container" ).html( '<div class="loading"></div>' );
    e( "#sendout-container" ).load( post_url + " #sendout-content", function( response, status, xhr ) {
        if ( status == "error" ) {
            var msg = "Sorry but there was an error: ";
            e( "#sendout-container" ).html( msg + xhr.status + " " + xhr.statusText );
        }
    });
    return false;
});

Буфер обмена JS функция

var btns = document.querySelectorAll('.copy-button');
var clipboard = new ClipboardJS(btns);
clipboard.on('success', function(e) {
    e.trigger.textContent = 'URL Copied';
    e.trigger.setAttribute('disabled', true);
});
...