jQuery - Trigger click event on links with spacebar?

Posted by Herb Caudill on Stack Overflow See other posts from Stack Overflow or by Herb Caudill
Published on 2010-03-12T16:04:18Z Indexed on 2010/03/12 16:07 UTC
Read the original article Hit count: 366

It looks like in most browsers, an <input type="submit"> treats both [spacebar] and [enter] as a click, but an <a> link only treats [enter] as a click.

My app uses a number of links formatted to simulate buttons, so a user that is accustomed to tabbing to a button and pressing [spacebar] will be frustrated.

This bit of jQuery solves the problem:

$("a.Button").die("keypress").live("keypress", function(e) {
    if (e.which == 32) {
        $(this).trigger("click");
        e.preventDefault();
    }
});

My question: Is this a reason not to do this? I'm a little reluctant to override the browser's default behavior on something as basic as this, but since I'm already abusing the link tag to make it look like a button, at least this way I'm not violating the user's expectations any further.

© Stack Overflow or respective owner

Related posts about jQuery

Related posts about user-interface