It may be easy enough for simple, single key presses. When modifiers are involved it starts to complicate things. Also a lot of people forget to check for modifiers. For example, you may not want Ctrl+Up to act in the same way as Up on its own, but a lot of key press handler code neglects to ensure Up and only Up has been pressed...
if ( event.keyCode === $.ui.keyCode.UP ) ... should really have been ... if ( event.keyCode === $.ui.keyCode.UP && !(event.metaKey || event.shiftKey || event.altKey) ) Imagine the standard redo key combo ( Ctrl+Shift+Z ), would you rather see ... $(...).bind('keypress', function(event) { if ( event.metaKey && event.shiftKey && !event.altKey && event.keyCode === 90 ) { ... do redo ... } }) or $(...).bind('keypress.key:ctrl-shift-z', function() { ... do redo ... }) Using namespace bindings like this also gives you the ability to unbind individual key combos, with the above example I could do this... $(...).unbind('keypress.key:ctrl-shift-z') 2010/1/4 ajpiano <ajpi...@gmail.com>: > This strikes me as almost a little bit too much sugar...to streamline > this type of binding/filtering, I tend to think it might just be > easier to perhaps use the jQuery.ui.keyCode object and move that into > core, perhaps? I think the idea is to save people needing to do the > keycode lookups, not necessarily complicate the event binding syntax. > > On Jan 2, 7:57 pm, Mark Gibson <jollyt...@gmail.com> wrote: >> I guess it would be possible to initialize the codes array the first >> time it was needed by the combo function, I've never tried profiling >> the code so I don't know if it would really give us much advantage. >> After a quick glance over the code (it's been a while since i've >> looked at it), it may indeed make sense to do that as all that >> initialization would then only happen if a key press occurred on an >> element bound using the "key:..." namespace. >> >> I've pushed the idea to a new branch (completely >> untested):http://github.com/jollytoad/jquery.keys/blob/ondemand/src/keys.core.js >> >> 2010/1/2 Jeremy Chone <jeremy.ch...@gmail.com>: >> >> >> >> > Thanks Mark, your plugin looks interesting. Do you think it would be >> > possible to do kc(...) initialization on demand? >> >> > On Jan 2, 1:17 am, Mark Gibson <jollyt...@gmail.com> wrote: >> >> Hi Jeremy, >> >> I created a plugin a while ago, very similar to what you are >> >> suggesting, it will only work with jQuery 1.4 though as it uses the >> >> special event registration hooks. >> >> >>http://github.com/jollytoad/jquery.keys/blob/master/src/keys.core.js >> >> >> - Mark Gibson >> >> >> 2010/1/1 Jeremy Chone <jeremy.ch...@gmail.com>: >> >> >> > Hi, >> >> >> > Any thought has been given on adding filter on event. For example >> >> >> > a) Called when enter will be pressed. >> >> >> > $("#myTextInputField").bind("keypress:enter",function(e){...}); >> >> >> > b) Called when a digit is pressed. >> >> >> > $("#myTextInputField").bind("keypress:0-9",function(e){...}); >> >> >> > c) Called when mouseenter with the key shift is pressed >> >> >> > $("#myTextInputField").bind("mouseenter:shift",function(e){...}); >> >> >> > d) Called when mouseenter with the keys shift and ctrl are pressed >> >> >> > $("#myTextInputField").bind("mouseenter:shift&ctrl",function(e){...}); >> >> >> > I am not sure this would be the right notation, but it will definitely >> >> > simplify some code and make it less error prone. >> >> >> > Jeremy, >> >> >> > -- >> >> >> > You received this message because you are subscribed to the Google >> >> > Groups "jQuery Development" group. >> >> > To post to this group, send email to jquery-...@googlegroups.com. >> >> > To unsubscribe from this group, send email to >> >> > jquery-dev+unsubscr...@googlegroups.com. >> >> > For more options, visit this group >> >> > athttp://groups.google.com/group/jquery-dev?hl=en. >> >> > -- >> >> > You received this message because you are subscribed to the Google Groups >> > "jQuery Development" group. >> > To post to this group, send email to jquery-...@googlegroups.com. >> > To unsubscribe from this group, send email to >> > jquery-dev+unsubscr...@googlegroups.com. >> > For more options, visit this group >> > athttp://groups.google.com/group/jquery-dev?hl=en. > > -- > > You received this message because you are subscribed to the Google Groups > "jQuery Development" group. > To post to this group, send email to jquery-...@googlegroups.com. > To unsubscribe from this group, send email to > jquery-dev+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/jquery-dev?hl=en. > > >
-- You received this message because you are subscribed to the Google Groups "jQuery Development" group. To post to this group, send email to jquery-...@googlegroups.com. To unsubscribe from this group, send email to jquery-dev+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/jquery-dev?hl=en.