2012-04-09 8 views
9

Tìm cách mô phỏng một phím nhấn bằng jQuery. Ví dụ ALT + F1 (giữ phím Alt và nhấn F1).Cách kích hoạt nhiều sự kiện nhấn và giữ trong jQuery

tôi đã quản lý để mô phỏng nhờ F1 bấm phím để: Definitive way to trigger keypress events with jQuery

Tìm kiếm cái gì như thế này:

$(".f1").click(function() { 
    var e = jQuery.Event("keydown"); 
    e.keyCode = 18; // ALT key pressed 
    // while ALT key is pressed, hit the F1 Key 
    $("input").trigger(e, function(){ 
     var e = jQuery.Event("keydown"); 
     e.which = 112; // F1 key 
     $("input").trigger(e); 
     }); 
}); 
+1

Hãy xem bài đăng này. Hy vọng nó giúp. http://stackoverflow.com/questions/4604057/jquery-keypress-ctrlc-or-some-combo-like-that –

Trả lời

18

Với các phím modifier alt, ctrl, và shift, bạn có thể sử dụng sự kiện công cụ sửa đổi dành riêng cho chúng:

$(".f1").click(function() { 
    var e = jQuery.Event("keydown"); 
    e.which = 112;  // # F1 code value 
    e.altKey = true;  // Alt key pressed 
    $("input").trigger(e); 
}); 

Demo: http://jsfiddle.net/jtbowden/2kcrg/

+0

nhanh và trikly –

2
  1. bạn không thể mô phỏng hoàn toàn các sự kiện nhấn phím, bạn chỉ có thể kích hoạt trình xử lý javascript bị ràng buộc với chúng. Vì vậy, hãy xem xét đơn giản bằng cách viết một hàm đóng gói những gì bạn muốn nhấn phím của bạn để làm, có trình xử lý nhấn phím gọi hàm đó và "mô phỏng" nhấn phím ở những nơi khác bằng cách chỉ cần gọi hàm đó.
  2. nếu bạn thực sự phải mô phỏng ALT-F1 và tương tự, bạn cần phải thiết lập các tài sản khác trong trường hợp keypress (ví dụ altKey hoặc metaKey), và/hoặc đầu tiên kích hoạt keydown sự kiện cho báo chí của phím modifier (trong JQuery/firefox , nhấn ALT cho tôi một sự kiện keydown với e.which == 18.). Vào cuối ngày, bạn chỉ cần tạo các sự kiện tương tự mà trình xử lý của bạn phản hồi.
+0

Đọc tốt sir. –