tôi chỉ thử nghiệm sau đây và nó làm việc hoàn hảo:
var view = Backbone.View.extend({
// ... snip ...
events: {
'keyup :input': 'logKey'
,'keypress :input': 'logKey'
}
,logKey: function(e) {
console.log(e.type, e.keyCode);
}
});
tôi muốn quay trở lại và kiểm tra mã của bạn. Tất cả các sự kiện trong Backbone được định nghĩa là các đại biểu gắn liền với phần tử viewInstance.el
. Để hủy liên kết các sự kiện, hãy gọi số viewInstance.remove()
gọi $(viewInstance.el).remove()
dưới bìa và dọn sạch tất cả các sự kiện được ủy quyền. Cũng xin lưu ý rằng trong một số trình duyệt (Firefox tôi tin) có một vấn đề đã biết là một số phím (như phím mũi tên) không bong bóng và sẽ không hoạt động đúng với các sự kiện được ủy quyền keypress
. Nếu bạn đang bắt các phím đặc biệt, có lẽ bạn nên sử dụng keyup
và keydown
.
Thư viện của bạn là chế độ xem xương sống hoặc html + js độc lập? –
Đó là chế độ xem xương sống. –
hiển thị cho chúng tôi các bộ chọn của bạn cho các sự kiện 'keydown' ... tôi nghĩ bạn ràng buộc chúng với các phần tử sai –