• 3
  • 新人请关照

clipboard如何进行异步的复制,即点击复制按钮时需要复制的内容不存在

<span class="main-lottery--share">立即邀请</span>

$('.main-lottery--share').click(function(){

$.ajax({

    type: 'post',

    url: "<{$share_url}>",

    success:function(msg) {

        $(".main-lottery--share").attr("data-clipboard-text",msg);

    }

});

clipboard.on('success', function(e) {

    console.info(e);
    console.info('Action:', e.action);
    console.info('Text:', e.text);
    console.info('Trigger:', e.trigger);
    e.clearSelection();
    alert(e.text)

});

clipboard.on('error', function(e) {

    console.error('Action:', e.action);
    console.error('Trigger:', e.trigger);
    prompt("复制失败,请手动复制:",e.text)

});

点击时发生ajax,之后才能获得需要复制的内容,填充点击按钮的data-clipboard-text属性。所以第一次点击无法复制所需要的内容,有什么异步点击复制的解决方法吗?

阅读 2.1k
评论
    1 个回答
    • 11.5k

    可以页面加载的时候先ajax请求,别点击的时候请求

    var clipboard = new Clipboard('.main-lottery--share');
    //ajax请求
    setTimeout(function () {
        $(".main-lottery--share").attr("data-clipboard-text", "aaaaaaaaaaa");
    }, 0)
    
    $('.main-lottery--share').click(function () {
        clipboard.on('success', function (e) {
            console.info(e);
            console.info('Action:', e.action);
            console.info('Text:', e.text);
            console.info('Trigger:', e.trigger);
            alert(e.text)
        });
    });
      撰写回答

      登录后参与交流、获取后续更新提醒