0

コンテンツを jquery UI にロードします ダイアログが 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 
        });
    });
4

1 に答える 1

0

HTML がどのように表示されるかはわかりませんが、フォーカスする前に数ミリ秒待ってみてください。

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

注: 試したことはありませんが、要素をフォーカスできないとは思いませんh1。入力要素のみ。

setTimeout を試して、ミリ秒の間一時停止してから100、フォーカスを設定してください。100数ミリ秒待つ必要はない1かもしれません。あなたはそれをテストすることができます。

于 2013-10-01T20:12:46.957 に答える