2012-01-20 40 views
5

Tôi đã phát triển một ứng dụng web trong asp.net 3.5. Nó tiêu thụ rất nhiều javascript/JQuery sự kiện và làm việc đúng trong trình duyệt bình thường trong pc, nhưng khách hàng của tôi là nói rằng đây không phải là làm việc trong máy tính bảng-pc/android và IPad. Giống như tôi có một danh sách thả xuống, trong đó tôi đang kích hoạt các sự kiện bấm phím và bấm chuột trong javascript, và chúng hoạt động hoàn hảo trong các trình duyệt thông thường, tôi cần phải ở dạng làm việc tất cả trong iPad và máy tính bảng android.Sự kiện Javascript không hoạt động trên Tablet-pc?

+0

tốt bạn không nhận được tất cả mọi thứ miễn phí (dàng), xem xét rằng trên iPad và các thiết bị Android khái niệm về nhấp chuột và nhấn đúp chuột là khác nhau hơn trên PC. Trong khi jQuery là một lựa chọn rất tốt để hỗ trợ lập trình phía máy khách trình duyệt chéo, thì nó phụ thuộc vào cách bạn sử dụng nó. Kiểm tra thông tin này để biết chi tiết: http://stackoverflow.com/questions/475674/what-javascript-events-are-available-to-webkit-on-android –

+0

Tôi nghĩ rằng liên kết này chỉ dành cho nhắm mục tiêu người dùng Android, nhưng mục tiêu là cả hai trình duyệt máy tính thông thường, máy tính bảng và iPad. –

Trả lời

4

Sự kiện nhấp chuột sẽ không hoạt động trên iPad vì màn hình cảm ứng - nhấp vào so với chạm mà tôi đoán. Bạn có cân nhắc sử dụng JQueryMobile thay vì JQuery không? Tôi được tối ưu hóa cho các thiết bị cảm ứng - như nó nói trên trang đầu của trang web.

Thay vì sử dụng nhấp vào nó có một loạt toàn bộ events you can hook into tức tap, swipe, taphold vv ... Nó sẽ là đủ dễ dàng để treo các chức năng tương tự vào một nhấp chuột và một sự kiện tap tức

('myelement').bind('click', function(event){ 
    myClickFunction(); 
}); 

('myelement').bind('tap', function(event){ 
    myClickFunction(); 
}); 

Có thể (gần như chắc chắn) những cách thanh lịch hơn để làm điều này - nhưng đó chỉ là một sự khởi đầu thực sự.

+3

Bạn có thể làm điều này: '$ ('myelement'). Bind ('click', myClickFunction) .bind ('tap', myClickFunction);' để làm cho mã trông khá –

+0

@AndrewJackman rực rỡ - cũng được thực hiện –

+0

Tôi đã thêm một danh sách thả xuống mới ở đó và đã kích hoạt sự kiện bình thường của selectedIndexCHanged ở đó và nó hoạt động. Bởi vì trong màn hình cảm ứng, chúng tôi không cần phải kích hoạt bất kỳ sự kiện nào của mũi tên trái hoặc mũi tên xuống hoặc cái gì khác. Cho đến nay tôi đang chờ đợi khách hàng của tôi. Tôi hy vọng nó sẽ làm việc trên máy tính của mình là tốt, bởi vì nó làm việc trên mcahine của tôi. –

1

Có những sự kiện liên lạc cho một thiết bị màn hình cảm ứng:

touchstart: a finger is placed on a DOM element. 
touchmove: a finger is dragged along a DOM element. 
touchend: a finger is removed from a DOM element. 

Có lẽ bạn muốn thử làm việc với những người. Điều đó đang được nói, rất tốt khi sử dụng các sự kiện như change (hoặc onchange nội tuyến với phần tử) cho danh sách thả xuống vì nó sẽ hoạt động bất kể nó thay đổi gì (bàn phím, sự kiện chuột hoặc sự kiện chạm).

Here là tài nguyên để tìm hiểu thêm.

0

Bạn có thể sử dụng một sự kết hợp và thử touchstart thay vì vòi

('myelement').bind('touchstart click', function(event){ 
    myClickFunction(); 
}); 
Các vấn đề liên quan