2010-03-01 16 views
27

tôi muốn làm một diễn đàn bbs rằng việc sử dụng nhiều sự kiện Bàn phím,đó là Javascript thư viện Keyboard kiện tốt nhất. (Hotkeys, Shortcuts)

nên đó là thư viện sự kiện bàn phím tốt nhất,

nhờ

+0

"Tốt nhất" là tiêu chí khó phù hợp. Bạn có thể thử đưa ra một số chi tiết hơn về những gì bạn đang cố gắng hoàn thành. Bằng cách đó, chúng tôi có thể cụ thể hơn. – Stephano

Trả lời

1

Cái này khá tốt cho jquery.

https://github.com/jeresig/jquery.hotkeys

+0

Tôi đã tải xuống tệp và kiểm tra tệp. Đó là một trường hợp ví dụ về việc sử dụng [jquery.hotkeys] (https://github.com/jeresig/jquery.hotkeys) –

+0

@NikolaPetkanski - tôi đã cập nhật liên kết. –

+0

Cảm ơn. Tôi đã xóa số điểm -1 của mình. –

1

Rất nhiều thư viện JavaScript đến đầy dẫy với cách chụp đầu vào quan trọng và sử dụng nó để lợi thế của bạn. Đó là một cược tốt mà bạn sẽ có thể tìm thấy một thư viện để làm điều đó, và không có gì khác. Tuy nhiên, tôi không có nhiều kinh nghiệm ở đó.

Tôi đã sử dụng Ext trong một thời gian và lớp KeyMap của họ thực sự dễ dàng để làm việc. Đây là một ví dụ đơn giản sử dụng nó.

new Ext.KeyMap(Ext.getDoc(), { 
     key: 'abc', 
     alt: true, 
     handler: function(k, e) { 
      var t = Ext.getCmp('tabpanel'); 
      switch(k) { 
       case 65: 
        t.setActiveTab(0); 
        break; 
       case 66: 
        t.setActiveTab(1); 
        break; 
       case 67: 
        t.setActiveTab(2); 
        break; 
      } 
     }, 
     stopEvent: true 
    }); 

Điều này có lớp, Ext.TabPanel và cho phép người dùng nhấn phím để thay đổi tab, thay vì nhấp vào tab.

Nó có thể, tất nhiên, làm được nhiều hơn thế. Đây là một ví dụ đơn giản về cách nó hoạt động.

-2

Bạn có thể thử một này ...

http://unixpapa.com/js/key.html

+2

-1: Đây không phải là thư viện - chỉ là một tài liệu tham khảo –

9

Hãy thử KeyboardJS

của nó đơn giản như

KeyboardJS.on('a', function(){ alert('hello!'); }); 

chưa linh hoạt như

var bindInstance = KeyboardJS.on('ctrl + a, ctrl + b, c', function(event, keysPressedArray, keyComboString){ 

    //you get the event object 
    console.log('event object', event); 

    //you get the keys pressed array 
    console.log('keys pressed', keysPressedArray); 

    //you get the key combo string 
    console.log('combo pressed', keyComboString); 

    console.log('I will fire when \'ctrl + a\' or \'ctrl +b\' or \'c\' is pressed down'); 

    //block event bubble 
    return false; 

}, function(event, keysPressedArray, keyComboString) { 

    console.log('I will fire on key up'); 

    //block event bubble 
    return false; 

}); 
.210

bạn có thể xóa một ràng buộc bằng cách gọi

bindInstance.clear(); 

bạn có thể xóa tất cả với phím tắt với các phím cụ thể với

KeyboardJS.clear('a, b'); 

mã nguồn mở của nó và có sẵn trên Github. Nó đi kèm trong ether một thư viện toàn cầu hoặc một mô-đun AMD cho RequireJS.

Đây là số introduction video.

Ở đó, giờ hãy ngừng lo lắng về bàn phím và mã ứng dụng của bạn. ;)

+0

Có vẻ như một tập lệnh thực sự tuyệt vời, nhưng tốt nhất tôi có thể nói nó không hoạt động trong IE8, điều đáng buồn là một vấn đề đối với tôi (ở nhiều cấp độ). Khi tôi đi đến http://robertwhurst.github.com/KeyboardJS/ với IE8, nó chỉ nói "JS là bắt buộc". –

+0

Bản demo có thể không hoạt động trong IE nhưng thư viện nên. Nó đã làm một vài xây dựng trước đây. Bạn đã thử bản thân thư viện chưa? –

+0

Tôi thì không. Tôi sẽ cho nó nó một cơ hội. Có tinh chỉnh mà bản demo cần thể hiện có thể xử lý tất cả các trình duyệt không? Tôi sẽ rất vui khi ngã ba và chỉnh sửa và gửi yêu cầu kéo trên trang demo. –

29

Chỉ một cách khác để hòa trộn. Gần đây tôi đã phát hành một cái gọi là Mousetrap. Bạn có thể xem các ví dụ tại http://craig.is/killing/mice

+0

Cảm ơn bạn đã chia sẻ nó! –

+0

Rất dễ thực hiện và hoạt động như một sự quyến rũ. Làm thế nào là giấy phép sử dụng nó trong các dự án thương mại? –

+2

Nó sử dụng giấy phép Apache 2.0. – Craig

2

Từ những gì tôi đã thấy Mousetrap là thư viện duy nhất cho phép bạn chỉ định khóa trình tự thay vì kết hợp. Điều này đến rất tiện dụng cho ứng dụng của tôi.

2

KEYPRESS là tập trung vào trận đấu đầu vào và hỗ trợ phím bất kỳ như một modifier, trong số những tính năng khác. Nó cũng là pre-packaged for Meteor.

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