Không có chuột và con trỏ, khái niệm về các yếu tố lơ lửng trên màn hình không thực sự áp dụng được cho các thiết bị cảm ứng. Với nhiều trang web dựa trên điều hướng sự kiện di chuột JavaScript hoặc các mục đích khác, một số thiết bị cảm ứng triển khai mouseenter
để kích hoạt khi một lần nhấn. Nếu trình xử lý sự kiện cũng bị ràng buộc với số click
, điều này sẽ chỉ được tăng lên khi nhấn lần thứ hai vào phần tử.Bỏ qua jQuery hover (mouseenter, mouseleave) trên các thiết bị cảm ứng
Kể từ hover()
chức năng của jQuery trong nội bộ sử dụng mouseenter
và mouseleave
, các yếu tố với cả hover()
và click()
đăng ký yêu cầu hai vòi để kích hoạt sau này . Đối với nhiều trường hợp sử dụng, đây chính xác là những gì bạn sẽ muốn xảy ra. Tuy nhiên, trong các ứng dụng mà việc xử lý hover()
chỉ tăng thêm sự nhấn mạnh (chú giải công cụ, ánh sáng, v.v.) cho phần tử lơ lửng, có thể có ý nghĩa hơn khi bỏ qua sự kiện này.
Tôi biết cách nghe cụ thể cho các sự kiện touchstart
và touchend
, cho phép tôi điều chỉnh trải nghiệm người dùng cảm ứng. Đây là một giải pháp hợp lệ cho vấn đề của tôi, nhưng tôi hy vọng rằng có thể có một cách "dễ dàng hơn" xung quanh vấn đề này. Tôi đang tưởng tượng một phương pháp tương tự như hover()
trong chữ ký của nó, chỉ được triển khai theo cách chỉ gắn các trình xử lý sự kiện được cung cấp trên các thiết bị không chạm.
jQuery có phương pháp như vậy không? Bất kỳ plugin nào? Hay tôi nhìn cái gì đó ở đây?
Hành vi xác nhận trên iPad, iPhone và một vài điện thoại di động Android.
Run JsFiddle demo này trên một máy tính để bàn vs thiết bị cảm ứng để xem những gì tôi đang nói về.
Không chắc chắn lý do tại sao điều này được bỏ phiếu, bạn sẽ không di chuyển các sự kiện trên thiết bị có cả hai tùy chọn? – Aaron