带有AJAX内容的Jquery UI Dialog,无法设置焦点

时间:2013-10-01 19:18:13

标签: jquery ajax jquery-ui-dialog

我将内容加载到jquery UI Dialog抛出ajax并且无法将注意力设置在H1标签上。 并没有遇到什么,我无法将焦点设置到对话框的任何元素,它只是叠加在对话框的最后一个元素上。

这是我的代码:

$(document).on('click', '.home_story_small_top', function( event ){

        event.preventDefault();

        var storyId = $(this).attr('storyId');

        function success( html )
        {       
            $("#storyContent").html(html);

            $('#storyContent').dialog({
                modal: true,
                resizable: false,
                height: $(window).height() - 100,
                width: $(window).width() - 400,
                dialogClass: 'noTitleDialog',
                buttons: {
                    Close: function(){
                        $(this).dialog('destroy');
                    }
                },
                open: function() { 
                    $('h1').focus(); 
                }
            });

            $('#newStoryTag' + storyId).hide();
        } 

        $.ajax({  
            url: "/showstory/" + storyId + "/ajax",
            cache: false,  
            success: success 
        });
    });

1 个答案:

答案 0 :(得分:0)

我不知道你的HTML是什么样子但是在聚焦前等待几毫秒。

open: function() {          
  setTimeout(function(){$('#storyContent input').focus();},100);        
}

注意:我从未尝试过,但我不认为h1元素不能被聚焦..只有输入元素。

尝试使用setTimeout暂停100毫秒,然后设置焦点。您可能不需要等待100毫秒1可能会这样做。你可以测试一下。