我将内容加载到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
});
});
答案 0 :(得分:0)
我不知道你的HTML是什么样子但是在聚焦前等待几毫秒。
open: function() {
setTimeout(function(){$('#storyContent input').focus();},100);
}
注意:我从未尝试过,但我不认为h1
元素不能被聚焦..只有输入元素。
尝试使用setTimeout暂停100
毫秒,然后设置焦点。您可能不需要等待100
毫秒1
可能会这样做。你可以测试一下。