2011-08-09 22 views
7

Tôi có một mã jQuery hoạt động hoàn hảo trên các trình duyệt máy tính để bàn;jQuery mouseout trên iPad

$("span#checkbox_err").mouseout(function() { 
         $("span#checkbox_err").fadeOut("slow"); 
        }); 

Nhưng cùng không kích hoạt trên iPad (kết quả là checkbox_err được hiển thị trên màn hình, nhưng không bao giờ che giấu)

Làm thế nào để kích hoạt các sự kiện mouseout trên iPad?

Ngoài ra tôi sẽ muốn tránh sử dụng bất kỳ thư viện thêm chỉ để khắc phục vấn đề nhỏ này ..

TÔI CÓ theo dõi câu hỏi

Tôi đang thử nghiệm một trang trên iPad và đang phải đối mặt với một số các vấn đề triển khai hành vi tương đương với hành vi di chuột qua ..

Vì vậy, vấn đề rất đơn giản để hiểu; 1. Trên trang của tôi, có một hộp kiểm khi nhấp chuột (hoặc thay vào đó chạm vào), tôi muốn hiển thị lỗi errorMsg 2. Khi nhấp vào/chạm vào bất kỳ điều gì khác ngoài errorMsg, tôi muốn ẩn errorMsg

Dưới đây là mã tôi đã viết;

$(document).bind("touchstart",function(e){ 
     if(e.target.id != "checkbox_err") 
     $("span#checkbox_err").fadeOut("slow"); 
    }); 
} 


$("input:checkbox").bind("touchstart",function(){ 
$("span#checkbox_err").fadeIn("fast"); 

}); 

Bây giờ vấn đề là khi tôi nhấp/chạm vào hộp kiểm, các ERRORMSG cho thấy trong một thời gian và sau đó nó cũng giúp giấu nó ngay lập tức (vì mục tiêu không phải là ERRORMSG)

Làm thế nào để sửa lỗi này vấn đề?

Trả lời

2

Bạn có thể thử .blur() thay vì .mouseout()

+1

blur() không hoạt động trên iPad – Diana

-1

Bạn có thể thử với GestureEnd() sự kiện trong ipad

+0

Không phải là cử chỉ cho nhiều lần chạm và không chạm một lần ... Tôi đang tìm kiếm tương đương với blur/mouseout .. – Diana

+0

@Diana: không có sự kiện như mouesout và di chuột qua môi trường cảm ứng.Hãy xem http://backtothecode.blogspot.com/2009/10/javascript-touch-and-gesture-events.html –

+0

Phải ... Nhưng có cách giải quyết nào để triển khai không tương đương với mouseout? – Diana

1

Có lẽ vì bọt? Điều đó có ý nghĩa với tôi, sự kiện sẽ đạt đến lớp cơ bản không phải là mục tiêu. Vì vậy, bạn phải dừng lại eventPropagation:

$("input:checkbox").bind("touchstart",function(){ 
$("span#checkbox_err").fadeIn("fast"); 
event.stopPropagation. 

}); 

Hy vọng nó giúp ya. Bạn có tìm thấy giải pháp thay thế cho việc di chuột không? - mang tôi đến đây.

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