Comments (2)
If your expecting keyup to fire before the key is released, that is not how key events work. When you hold a key down for more than about half second key down events are fired repeatedly until you release the key. Only after the key is released the keyup event should be fired.
You don't have to take my work for it though, If you look at KeyboardJS's source code its just piping native DOM events. At no point does the library create events from scratch.
If you want a keypress event you can ether wait till I'm done KeyboardJS 1.0.0 or you can bind to keydown and ignore any following events.
This is an example of a function that can accomplish this.
KeyboardJS.bind.keypress = function(keyCode, callback) {
var keyPressed = false;
return KeyboardJS.bind.key(keyCode, function() {
if(!keyPressed) {
keyPressed = true;
if(typeof callback === 'function') { callback(); }
}
}, function(){
keyPressed = false;
});
}
By the way, JavaScript doesn't randomly break because of "crap you have a javascript do in the background", unless you are overwriting global variables. The language should always be predictable (that is if you undertand functional programming with lambda patterns). Also note that JavaScript and the DOM interface are separate and most bugs can be attributed to the DOM.
from keyboardjs.
thanks
from keyboardjs.
Related Issues (20)
- What is the desired behavior of preventRepeat? HOT 6
- For what reason might numeric keypad not work? HOT 3
- Sequence timing HOT 1
- HOW TO CREATE WITH A JAPANESE LOCALE? HOT 1
- Can't bind on a combo that includes a delimiter HOT 3
- Press key on electron HOT 2
- Binding arrows HOT 2
- Add watch targets to the current context rather than setting it globally
- Add integration tests for testing against common oses and browsers.
- Create a new website with proper documentation and demo HOT 3
- Releasing a binding when another activates HOT 1
- unbind keys from a specific context HOT 1
- [BUG] callback gets call incorrectly with incorrect key
- bind() with preventRepeatByDefault=true omits the first firing of pressHandler HOT 3
- ES6 is a breaking change HOT 2
- Secondary key symbols not firing event HOT 1
- Error when starting the program HOT 3
- Error TypeScript type HOT 3
- Bind characters with repetition
- Question: is it possible to unbind browser default shortcut like Command + W / Control + W HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from keyboardjs.