Javascript VueJS-需要单击按钮两次,才能将副本复制到剪贴板
我有一个文本输入和一个手风琴上的按钮副本 这是我在复制按钮上的代码Javascript VueJS-需要单击按钮两次,才能将副本复制到剪贴板,javascript,vue.js,Javascript,Vue.js,我有一个文本输入和一个手风琴上的按钮副本 这是我在复制按钮上的代码 <accordian> <accordian-panel heading="Feed ID"> <div class="form-row form-row-layout"> <input type="text" v-model="feed.app_id"
<accordian>
<accordian-panel heading="Feed ID">
<div class="form-row form-row-layout">
<input type="text" v-model="feed.app_id" id="feedAppId" />
<button class="btn btn-sm btn-primary" id="copyFeedIdBtn" @click.prevent="copyFeedId()" data-clipboard-target="#feedAppId">Copy</button>
</div>
</accordian-panel>
</accordian>
我注意到我必须点击两次按钮才能让它工作
我认为它不起作用的原因是当手风琴关闭时,副本还没有注册。即使手风琴还关着,我也不知道如何登记这次活动。我注意到,当我尝试运行jQuery('#copyFeedIdBtn')[0]
时,当它仍然关闭时返回undefined
,但当它打开时,其中已经有数据
非常感谢您的帮助,谢谢 你这样试过吗
copyFeedId()
{
const el=getElementById('feedAppId');
el.focus();
el.设置选择范围(0,el.值.长度);
尝试
{
const result=document.execCommand('copy');
如果(结果)
{
//成功;
}
其他的
{
//失败
log('无法复制到剪贴板');
}
}
捕获(e)
{
//错误
控制台日志(e.message | | e);
}
}
你试过这样吗
copyFeedId()
{
const el=getElementById('feedAppId');
el.focus();
el.设置选择范围(0,el.值.长度);
尝试
{
const result=document.execCommand('copy');
如果(结果)
{
//成功;
}
其他的
{
//失败
log('无法复制到剪贴板');
}
}
捕获(e)
{
//错误
控制台日志(e.message | | e);
}
}
除非有人确切地知道您在使用什么,否则我们很难帮助您,您能创建一个代码笔来说明这个问题吗?所以我们也知道您正在使用的包和版本…如果您有vue,为什么要使用jQuery?据我所知,您的问题是通过调用处理程序来调用一个不存在的dom对象。使用wait vm.$nextTick()
等待渲染。或者使用vue.Hi@Estradiaz-我怎么能使用它?对不起,我对此一无所知。除非有人确切知道你在使用什么,否则我们很难帮助你,你能创建一个代码笔来说明这个问题吗?所以我们也知道您正在使用的包和版本…如果您有vue,为什么要使用jQuery?据我所知,您的问题是通过调用处理程序来调用一个不存在的dom对象。使用wait vm.$nextTick()
等待渲染。或者使用vue.Hi@Estradiaz-我怎么能使用它?对不起,我对这件事很不了解。
copyFeedId()
{
this.clipboard = new Clipboard(jQuery('#copyFeedIdBtn')[0],{
container: this.$el
});
this.clipboard.on('success', (e) => {
this.$appToasts.success('Feed ID copied to clipboard');
e.clearSelection();
});
this.clipboard.on('error', (e) => {
console.error('Action:', e.action);
console.error('Trigger:', e.trigger);
});
}