jquery fancybox焦点问题

时间:2013-01-29 06:51:58

标签: jquery fancybox focus

我有一个在jQuery Fancybox Window中打开的表单。 页面加载时会自动打开fancybox窗口。当它加载时,我希望它将焦点设置在Fancybox窗口中的表单中的用户名字段。 我发现必须在安装fancybox时执行此操作,因此我尝试了不起作用的给定代码:代码段:

jQuery(document).ready(function() {
$("#hidden_link").trigger('click');
document.getElementById('username').focus(); 
});

表单名称为“login_form”,字段ID为“username”。

3 个答案:

答案 0 :(得分:1)

我不太确定你使用的版本。

我假设您使用版本1 所以在调用fancybox时尝试添加这个选项

  • onStart将在尝试加载内容之前调用
  • onCancel将在取消加载后调用
  • onComplete将在显示内容后调用
  • onCleanup将在关闭之前调用
  • onClosed将在FancyBox关闭后调用

这来自fancybox api文件http://fancybox.net/api

并添加您要使用的功能。

在这种情况下

$('#somediv').fancybox({
    oncomplete: function() {
        document.getElementById('username').focus();
    }
});

答案 1 :(得分:0)

您正试图在出现fancybox之前调用focus()。而不是将该调用放入ready(),而是将其放入onComplete()。

onComplete: function() { 
          $('#username').focus(); 
}

答案 2 :(得分:0)

我必须使用setTimeout来解决这个问题。

  

onComplete:function(){       setTimeout(function(){           $(' .sms_code')[" 1&#34]。对焦();           },1000); }