Với đồng bằng Javascript, đơn giản nhất là:
document.onkeypress = function (e) {
e = e || window.event;
// use e.keyCode
};
Nhưng với điều này, bạn chỉ có thể ràng buộc một handler cho sự kiện này.
Bên cạnh đó, bạn có thể sử dụng sau đây để có thể có khả năng liên kết nhiều bộ xử lý đến cùng một sự kiện:
addEvent(document, "keypress", function (e) {
e = e || window.event;
// use e.keyCode
});
function addEvent(element, eventName, callback) {
if (element.addEventListener) {
element.addEventListener(eventName, callback, false);
} else if (element.attachEvent) {
element.attachEvent("on" + eventName, callback);
} else {
element["on" + eventName] = callback;
}
}
Trong cả hai trường hợp, keyCode
là không đồng nhất giữa các trình duyệt, vì vậy có nhiều để kiểm tra và tìm ra. Chú ý e = e || window.event
- đó là một vấn đề bình thường với Internet Explorer, đưa sự kiện vào window.event
thay vì chuyển nó tới cuộc gọi lại.
Tài liệu tham khảo:
Với jQuery:
$(document).on("keypress", function (e) {
// use e.which
});
tham khảo:
Khác với jQuery là một thư viện "lớn", jQuery thực sự giúp với mâu thuẫn giữa các trình duyệt, đặc biệt là với các sự kiện cửa sổ ... và không thể bị từ chối. Hy vọng rằng nó là hiển nhiên rằng mã jQuery tôi cung cấp cho ví dụ của bạn là nhiều hơn nữa thanh lịch và ngắn hơn, nhưng hoàn thành những gì bạn muốn một cách nhất quán. Bạn sẽ có thể tin tưởng rằng e
(sự kiện) và e.which
(mã khóa, để biết khóa nào đã được nhấn) là chính xác. Trong Javascript đơn giản, khó có thể biết được trừ khi bạn làm mọi thứ mà thư viện jQuery thực hiện.
Lưu ý có sự kiện keydown
, khác với keypress
. Bạn có thể tìm hiểu thêm về chúng tại đây: onKeyPress Vs. onKeyUp and onKeyDown
Để gợi ý nên sử dụng cái gì, tôi chắc chắn sẽ đề xuất sử dụng jQuery nếu bạn đang học về khuôn khổ. Đồng thời, tôi sẽ nói rằng bạn nên tìm hiểu cú pháp, phương thức, tính năng của Javascript và cách tương tác với DOM. Một khi bạn hiểu cách nó hoạt động và những gì đang xảy ra, bạn nên thoải mái hơn khi làm việc với jQuery. Đối với tôi, jQuery làm cho mọi thứ nhất quán hơn và ngắn gọn hơn. Cuối cùng, đó là Javascript và kết thúc tốt đẹp ngôn ngữ.
Ví dụ khác về jQuery rất hữu ích là với AJAX. Các trình duyệt không phù hợp với cách các yêu cầu AJAX được xử lý, do đó jQuery tóm tắt để bạn không phải lo lắng.
Dưới đây là một cái gì đó có thể giúp quyết định:
tôi muốn đề nghị chỉ nghe cho sự kiện phím nhấn, hay có thể là một trong những đối tác của nó (KeyDown hoặc KeyUp) –
bắt đầu ở đây - http: //api.jquery.com/keypress/ –
jQuery * là * JavaScript; sự khác biệt duy nhất là jQuery là một thư viện * * tóm tắt các khác biệt giữa các trình duyệt, để làm cho nó dễ dàng hơn (nhưng không nhất thiết phải hiệu quả hơn) để viết mã trình duyệt chéo. –