You're right on - the target doesn't seem to get focus. I'm applying this to a li element though... would that cause the issue?
On Dec 17, 4:33 pm, brian <bally.z...@gmail.com> wrote: > On Wed, Dec 17, 2008 at 4:05 PM, brian <bally.z...@gmail.com> wrote: > > On Wed, Dec 17, 2008 at 2:31 PM, sshefer <shai.she...@gmail.com> wrote: > > >> Here is my current code: > > >> $('.position_info').hover( > >> function(e) { > >> var target = $(e.target); > >> target.bind('keydown', 'space', function(){ > >> target.children('strong').toggle(); > >> }); > >> }, > >> function(e) { > >> var target = $(e.target); > >> target.unbind('keydown', 'space'); > >> } > >> ); > > > the target.bind('keydown', 'space', ... won't work because you have to > > pass an object. Similarly, unbind() takes an event type and a > > function. You'll need to figure out which key has been pressed in your > > handler function. > > > I'd do something more like this (yeah, I tested it and it doesn't work > > but, anyway ...) > > > $('.position_info').hover( > > function(e) > > { > > var target = $(e.target); > > target.bind( > > 'keydown', > > {combi:'space', disableinInput: true}, > > handler > > ); > > }, > > function(e) > > { > > var target = $(e.target); > > target.unbind('keydown'); > > } > > ); > > > function handler(e) > > { > > var target = $(e.target); > > target.children('strong').toggle(); > > alert(e.data.combi); > > } > > > Good luck. > > One thing I just thought of: you probably need to give the target > focus because it won't ordinarily get that onHover and the keydown > event might not be caught unless it has focus, first. > > target.focus(); > > Add this to your page to ensure that, at least, is working: > > $('.position_info').focus(function(e){ var target = $(e.target); > target.css('background', 'yellow'); });