Skip to content
Permalink
Browse files

Core: Added asynchronous focus. Fixed #3559 - :focusable, :tabbable, …

…setFocus().
  • Loading branch information...
scottgonzalez committed Apr 18, 2009
1 parent 1578835 commit cedf663e2f13bb24a1e473c55e49248d98be3f16
Showing with 36 additions and 0 deletions.
  1. +23 −0 tests/unit/core/core.js
  2. +13 −0 ui/ui.core.js
@@ -25,4 +25,27 @@ test("attr - aria", function() {
equals(el.attr('aria-expanded'), 'false', 'aria expanded is false');
});

test('focus', function() {
expect(3);

var el = $('#inputTabindex0'),
// used to remove focus from the main element
other = $('#inputTabindex10');

// test original functionality
el.focus(function() {
ok(true, 'event triggered');
});
el.focus();
other.focus();

// trigger event handler + callback
stop();
el.focus(500, function() {
start();
ok(true, 'callback triggered');
});
other.focus();
});

})(jQuery);
@@ -135,6 +135,19 @@ if (isFF2) {

//jQuery plugins
$.fn.extend({
_focus: $.fn.focus,
focus: function(delay, fn) {
return typeof delay === 'number'
? this.each(function() {
var elem = this;
setTimeout(function() {
$(elem).focus();
(fn && fn.call(elem));
}, delay);
})
: this._focus.apply(this, arguments);
},

remove: function() {
// Safari has a native remove event which actually removes DOM elements,
// so we have to use triggerHandler instead of trigger (#3037).

0 comments on commit cedf663

Please sign in to comment.
You can’t perform that action at this time.