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 */ });
});