Tôi đang thử nghiệm ý tưởng này bằng cách sử dụng div trên đỉnh của hình <input type="file" />
ẩn để tôi có thể tạo nút tải lên tệp ưa thích. Tôi đã thấy một số mã xung quanh nhưng hơi phức tạp. Tôi nghĩ đến việc cố gắng ý tưởng này của việc sử dụng jQuery để kích hoạt các nhấp chuột của thẻ đầu vào từ container divKích hoạt nhấp chuột với jquery trên thẻ đầu vào bị ẩn
Html:
<div id="container"> Click Me!
<input type="file" id="file" />
</div>
Javascript:
$(document).ready(function() {
$('#container').click(function() {
$('#file')[0].click();
})
});
Mặc dù mã chạy OK trên Chrome và IE, nó không chạy trên Safari và nó có một vấn đề buồn cười với Firefox: nó kích hoạt nhấp chuột hai lần! Bất kỳ ý tưởng tại sao điều này là như vậy? jQuery được cho là nền tảng chéo và tôi bối rối. Đây là fiddle
http://jsfiddle.net/kostasd/C4sCs/1/
Cảm ơn trước sự giúp đỡ nào!
Kostas
Công việc xung quanh cho đây không phải là để che giấu yếu tố, nhưng thay vào đó cung cấp cho nó một 'display: block; position: absolute; top: 0; trái: -9999px; ', sau đó quấn nó với một container có 'vị trí: tương đối; overflow: hidden; width: somepx;'. ** KHÔNG SỬ DỤNG display: none **. Sau đó kích hoạt nhấp chuột của bạn; bam, hỗ trợ nhiều trình duyệt. – Ohgodwhy
Cảm ơn vì mẹo. Tôi sẽ thử. – user2339672
Trong phiên bản hiện tại của Firefox, nó cũng sẽ hoạt động với 'display: hidden' – CoderPi