您可以尝试这样的事情(这有点像 hack)。如果您在 jQuery 中对 css/show/hide/toggle 原型进行猴子修补,您可以测试元素是否:hidden在“滴答”之后更改其属性(我使用了 4 毫秒)。如果是这样,它已经改变了它的可见性。对于动画等,这可能无法按预期工作,但否则应该可以正常工作。
演示:http:  //jsfiddle.net/Bh6dA/
$.each(['show','hide','css','toggle'], function(i, fn) {
    var o = $.fn[fn];
    $.fn[fn] = function() {
        this.each(function() {
            var $this = $(this),
                isHidden = $this.is(':hidden');
            setTimeout(function() {
                if( isHidden !== $this.is(':hidden') ) {
                    $this.trigger('showhide', isHidden);
                }
            },4);
        });
        return o.apply(this, arguments);
    };   
})
现在,只需监听showhide事件:
$('div').on('showhide', function(e, visible) {
    if ( visible ) {
        $(this).find('input:first').focus();
    }
});
多田!
PS:我喜欢猴子补丁