2012-09-20 33 views
8

Khi một vùng văn bản cụ thể được sao chép, tôi muốn nó được ẩn sau khi được sao chép. Tôi có mã sau đây:Trên bản sao ẩn vùng văn bản (JQuery)

$('#textarea20').on('copy', function() {  
    $('#textarea20').hide(); 
}); 

Như bạn thấy điều này sẽ ẩn nó sau đó trình duyệt sẽ cố gắng sao chép trường bị ẩn để nó sẽ không sao chép vào khay nhớ tạm. Bạn có thể nghĩ ra bất kỳ cách nào tôi có thể xử lý điều này? Bất kỳ trợ giúp được đánh giá cao.

Trả lời

5

Trì hoãn hide() sau vài mili giây sẽ hoạt động.

Demo: http://jsfiddle.net/techfoobar/uxmRs/

:

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

+1 - Có thể là giá trị sử dụng một tài liệu tham khảo cho 'this' bên trong hàm chỉ trong trường hợp có nhiều 'textareas' trên trang (Tôi biết OP sử dụng một id trong selector của mình và nó không áp dụng ở đó nhưng nó có thể giúp những người khác đi qua ví dụ này) – billyonecan

+1

Vâng, đúng vậy. Thêm vào đó, việc lưu tham chiếu cũng sẽ có nghĩa là jQuery không phải đi qua DOM để tìm (các) phần tử bên trong hàm setTimeout. – techfoobar

+0

Hoàn hảo. Cảm ơn sự giúp đỡ của bạn và phản hồi nhanh chóng! Tôi rất trân trọng điều này –

Các vấn đề liên quan