AJAX中无法使用JS模拟点击按钮,请问该如何解决呢

w2362233 2018-05-31 09:38:18
$.ajax({
cache: false,
type: 'post',
url: 'check.php?action=domain&pid=1',
dataType:'json',
async: true,
success: function (data) {
if (data.status == 'success') {
document.getElementById('cp').innerHTML = "<span id='targett'>"+data.info+"</span><button class='btn' data-clipboard-action='copy' data-clipboard-target='#targett' style='margin=0 auto;' id='copy_btn'>复制</button>";
document.getElementById("copy_btn").click();
document.getElementById('cp').innerHTML =" ";
}
}
});

<script>
$(document).ready(function(){
var targetText=$("#target").text();
var clipboard = new Clipboard('#copy_btn');
clipboard.on('success', function(e) {
console.info('Action:', e.action);
console.info('Text:', e.text);
console.info('Trigger:', e.trigger);
alert('复制成功');
e.clearSelection();
});
});
</script>
我使用AJAX查询信息,然后使用 clipboard复制,但是发现在AJAX中无法用JS模拟点击按钮,请问该如何处理呢
...全文
1314 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
天际的海浪 2018-05-31
  • 打赏
  • 举报
回复
元素重新生成后当然要重新应用Clipboard啊 $.ajax({ cache: false, type: 'post', url: 'check.php?action=domain&pid=1', dataType:'json', async: true, success: function (data) { if (data.status == 'success') { document.getElementById('cp').innerHTML = "<span id='targett'>"+data.info+"</span><button class='btn' data-clipboard-action='copy' data-clipboard-target='#targett' style='margin=0 auto;' id='copy_btn'>复制</button>"; var clipboard = new Clipboard('#copy_btn'); clipboard.on('success', function(e) { console.info('Action:', e.action); console.info('Text:', e.text); console.info('Trigger:', e.trigger); alert('复制成功'); e.clearSelection(); }); document.getElementById("copy_btn").click(); document.getElementById('cp').innerHTML =" "; } } });
天际的海浪 2018-05-31
  • 打赏
  • 举报
回复
还有,Clipboard必须在用户真实点击的事件线程中使用才有效。 你在ajax的异步线程中模拟点击也没有效吧

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧