ZeroClipboard не работает в первом клике

Я пытаюсь скопировать текст в буфер обмена с помощью ZeroClipboard. Работает хорошо, но только при втором нажатии на кнопку, а не при первом нажатии. Я видел несколько решений в Google, но ни одно из них не устранило мою проблему. Я попытался поместить события ZeroClipboard вне события нажатия кнопки, а также поместить его в $(document).ready(function() и все это не помогло. Можете ли вы помочь мне решить эту проблему? Спасибо!

$("body").on('click','.copyToClipboard', function (event) {
var clientTarget =  new ZeroClipboard( $("#copy_to_clipboard"), {

        moviePath: "js/ZeroClipboard.swf",
        debug: false
    } );

    $('#copy_to_clipboard').attr('data-clipboard-text', texttocopy);
    alert(texttocopy);
    clientTarget.on( "load", function(clientTarget)
    {
        $('#flash-loaded').fadeIn();

        clientTarget.on( "complete", function(clientTarget, args) {
            clientTarget.setText( args.text );
            $('#data-to-copy-text').fadeIn();


        } );
        alert(args);
    } );

});

1 ответ

Я думаю, что вам нужно настроить нулевой буфер обмена, прежде чем нажать на него. В вашем коде вы не настраиваете его на обработку кликов, пока не нажмете на него. Вы должны найти все объекты на странице, которые должны обрабатывать клики, и настроить их на готовый документ. что-то вроде этого:

$(function () {     
    $('.copyToClipboard').zclip({ /* zclip settings */ });
});
Другие вопросы по тегам