Tôi đã tìm kiếm một giao dịch tốt và dường như không thể tìm thấy giải pháp thỏa đáng. Tôi hy vọng ai đó có thể giúp đỡ.Phím điều khiển phát hiện Javascript được tổ chức trên Mouseup
Trong khi tôi đang sử dụng jQuery, tôi cũng viết nhiều hàng nghìn dòng Javascript. Vì vậy, một giải pháp "tinh khiết" javascript là tốt.
Tôi đang cố gắng xác định xem khóa điều khiển có được giữ nguyên trên sự kiện di chuột hay không. Đó là nó; không có điều kiện tiên quyết nào khác. Có ai biết làm thế nào để làm điều này đáng tin cậy, qua trình duyệt?
Tôi đã thử lưu trữ này trong một biến trạng thái bằng cách ghi nhận khi phím được nhấn và thả:
// BEGIN store control key status in hash_state
$().bind('keydown','ctrl',function(arg_obj_e){
hash_state.sw_ctrldn = true;
console.debug(hash_state.sw_ctrldn);
});
$().bind('keyup','ctrl',function(arg_obj_e){
hash_state.sw_ctrldn = false;
console.debug(hash_state.sw_ctrldn);
});
// END store control key status in hash_state
Tuy nhiên, điều này thực sự không hoạt động. Nếu bạn kiểm tra điều này bằng cách sử dụng firebug và xem giao diện điều khiển, bạn sẽ thấy rằng tự động lặp lại dường như xảy ra và giá trị chuyển đổi.
Tôi kiểm tra các sự kiện mouseup để xem nếu có bất cứ điều gì hữu ích ở đó, nhưng không có kết quả:
var debugEvent = function(arg_obj_e){
var str = '';
for (var attr in arg_obj_e){
str += attr + ': ' + arg_obj_e[attr] + '\n';
}
console.debug(str);
}
Bất kỳ trợ giúp sẽ được đánh giá cao.
Ồ, tôi không biết các sự kiện quan trọng được hỗ trợ của jQuery theo cách đó. Tôi không thể tìm thấy bất kỳ tài liệu nào về nó. Ngoài ra, không $(). Bind() (rỗng jQuery) làm việc, hoặc là chỉ cần viết tắt? Nếu vậy, nó có bị ràng buộc với $ (tài liệu) không? – eyelidlessness
@eyelidlessness: Đó là loại ràng buộc là từ một plugin gọi là js-hotkeys http://code.google.com/p/js-hotkeys/ – CMS