2015-03-16 2 views
0

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

$("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); 
    }); 

}); 

ответ

0

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

$(function() {  
    $('.copyToClipboard').zclip({ /* zclip settings */ }); 
}); 
Смежные вопросы