2010-08-12 25 views
5

Tôi có một loạt các yếu tố được chọn trong biểu mẫu trên trang web dành cho thiết bị di động. Các phần tử được chọn này nằm bên trong một ô cuộn được xử lý thông qua các biến đổi JS và CSS3, do đó, việc chạm vào/bấm/bất kỳ sự kiện nào để đăng ký trên các lựa chọn là đủ đau ở nơi đầu tiên. Tuy nhiên, bây giờ tôi đang tìm kiếm, chỉ trên Android, mặc dù các lựa chọn đang được nhấp vào và đang tập trung - họ chỉ đơn giản từ chối mở. Tôi chắc chắn 100% rằng các lựa chọn đang nhận được sự kiện tập trung của họ (thông qua gỡ lỗi), vì vậy thành thật mà nói, tôi hoàn toàn bối rối. Không có sự gỡ rối, không có sự kiện focus/blur nào khác trên các lựa chọn. Nó hoạt động tốt trên iPhone ... bất kỳ ý tưởng?ANDROID WEBKIT: Chọn các yếu tố nhận sự kiện tập trung, nhưng không mở!

Trả lời

2

Tôi đã đập đầu vào tường với cùng vấn đề này. Dường như nó bị cô lập với Android 2.1/2.2 (và có thể 2.0?). Các lựa chọn hoạt động tốt trong Android 1.5/1.6. Tôi thậm chí còn tạo ra một trang đơn giản mà chỉ thay đổi kiểu hiển thị của lựa chọn từ không để chặn và lựa chọn vẫn không mở một cách nhất quán. Thật kỳ lạ, đôi khi sau khi làm mới trang, nó có thể hoạt động, sau đó sau khi làm mới lại nó có thể bị hỏng một lần nữa. Như bạn đã nói, các sự kiện lấy nét và nhấp/chạm sẽ kích hoạt từ phần tử đó, vì vậy, tôi đang thua lỗ về vấn đề đó.

Đôi khi nếu tôi phóng to trang, tôi có thể chọn mở, nhưng ngay cả khi giá trị được chọn không được thể hiện trong phần tử chọn trên trang.

Tôi đã gửi bug report cho nhóm nhà phát triển Android, nhưng ngay cả khi nó được khắc phục trong tương lai, việc xây dựng vấn đề sẽ vẫn tồn tại trong 2.1/2.2.

Bất kỳ ai tìm cách giải quyết vấn đề này chưa?


// ---- Cập nhật ------
Nếu bạn sử dụng webkit-chuyển đổi sang hiển thị/ẩn các yếu tố, gắn các sự kiện sau đây để các phần tử xuất hiện để sửa chữa bên trong chọn của nó:

 
.addEventListener("webkitTransitionEnd",function(e){ 
    this.innerHTML = this.innerHTML; 
},false); 

Tôi không hoàn toàn chắc chắn lý do tại sao nó hoạt động, nhưng viết lại phần tử DOM dường như giúp ích cho một số lý do. Thử nghiệm trong trình mô phỏng Android 2.1/2.2, EVO4G và MyTouch.

+0

Tôi có vấn đề này. Tôi đã thử giải pháp của bạn trên điện thoại Droid 2 chạy Android 2.2 và nó không hoạt động. –

0

Tôi đã tìm thấy giải pháp trong this answer bởi a.meservy. Đây là câu trả lời, được sao chép để thuận tiện cho mọi người.

Trong trường hợp này, sự cố thực sự do jQTouch gây ra. Để khắc phục nó, chỉ cần nhận xét ra những 4 dòng trong jqtouch.css

Dưới "cơ thể"

/*-webkit-perspective: 800;*/ 
    /*-webkit-transform-style: preserve-3d;*/ 

Dưới "body> *"

/*-webkit-backface-visibility: hidden;*/ 
/*-webkit-transform: translate3d(0,0,0) rotate(0) scale(1);*/ 
Các vấn đề liên quan