Comments (7)
Not in core. I'm trying to keep the library as simple and focused as possible. Things like temporal logic and control flow are out of the scope of this project. You can do this with setTimeout and a boolean.
from keyboardjs.
I would have to edit the core in order to add the setTimeout correct?
from keyboardjs.
You shouldn't have to add this to KeyboardJS at all. I meant within your binding callback. Something like this.
var longKeyPress = false;
KeyboardJS.bind.key('i', function() {
if(longKeyPress === 'g') {
myHotKeyFunct();
longKeyPress = false;
} else {
longKeyPress = 'i';
}
});
KeyboardJS.bind.key('g', function() {
if(longKeyPress === 'i') {
myHotKeyFunct();
longKeyPress = false;
} else {
longKeyPress = 'g';
}
});
function myHotKeyFunct() {
//Your logic here
}
from keyboardjs.
seems really hacky, I thought this would have been an issue while making the core, I will poke around a bit and see if I can make a more re-usable solution. Thanks for you tips though this helped
from keyboardjs.
Well its not what I would put in a project of mine the way it is, its just an example to get you going. I wouldn't say its a hack.
I don't plan on adding this to KeyboardJS because the project is only concerned with giving developers the ability to bind to key combo events. How you want to attach your logic is up to you.
from keyboardjs.
Thanks so much for this tool it's awesome :)
from keyboardjs.
Hey, no problem. I'm glad you like it. If you have any other ideas or questions feel free to post them here.
Cheers @JAStanton
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 1
- 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.