在复制时隐藏文本区域(JQuery)

8
当复制特定的文本区域后,我希望它在被复制后隐藏。我有以下代码:
    $('#textarea20').on('copy', function() {    
    $('#textarea20').hide();
});

正如您所看到的,这会将其隐藏,然后浏览器将尝试复制一个隐藏的字段,因此它将不会复制任何内容到剪贴板。您能想到我可以如何处理这个问题吗?非常感谢您的帮助。

1个回答

5

hide()延迟几毫秒应该可以解决问题。

示例: http://jsfiddle.net/techfoobar/uxmRs/

代码:

$('textarea').on('copy', function() {    
    setTimeout(function() {
        $('textarea').hide();
    }, 10);
});

1
+1 - 在函数内部使用对this的引用可能是值得的,以防页面上有多个textareas(我知道OP在选择器中使用了一个id,但它不适用于此处,但可能会帮助其他遇到这个例子的人) - billyonecan
1
是的,没错。此外,保存引用还意味着jQuery不必在setTimeout函数内部遍历DOM以查找元素。 - techfoobar
太好了。感谢您的帮助和快速响应!我非常感激。 - user1685794

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接