遇到Jquery Focus问题()

时间:2017-04-16 21:25:41

标签: jquery focus

单击叠加触发器时,我试图将焦点设置在叠加层内的链接按钮上。这是代码:

$('.enroll-trigger, .nav-open-an-account').click(function(e) {
    e.preventDefault();
    enrollTabPos = 0;
    $('#window-outer, body').removeClass('nav-open');
    $('#mobile-menu-toggle').removeClass('active');
    $('#top-nav > ul > li').removeClass('active');
    $('#mobile-nav > ul > li').removeClass('active');
    $('#internal-nav > ul > li').removeClass('active');
    $('body').removeClass('login-overlay-open ext-overlay-open'); 
    $('body').toggleClass('enroll-overlay-open');
    $('#openaccount-checking').focus();                

});

由于某种原因,使用focus命令的最后一行不起作用。我可以单击触发元素,除焦点更改外,其他所有发生的事情都会发生。我在thr页面中对其他叠加触发器进行了类似的焦点更改并且它们可以正常工作,所以我不知道为什么这个没有。我检查了id,这是正确的。任何人都可以看看,告诉我发生了什么?您可以在http://investar.meshbr.com查看该网站,有问题的触发器是顶部导航中的“打开帐户”按钮。

谢谢,

布赖恩

3 个答案:

答案 0 :(得分:0)

您正在使用$(document).ready(function() {})内的代码? 因为如果你在外面,这不会加载。

答案 1 :(得分:0)

当我检查您的网站并打开帐户按钮时,单击事件。对于具有检查选项的弹出窗口,您引用的JS有问题。因此它不起作用。

请在您的JS" MenuBarItemLink.JS"中查看 this.popupMenu.open(); 这一行。在第175行和第180行。在第175行可能有Show()属性。

答案 2 :(得分:0)

看起来原始海报通过将focus()包裹在setTimeout中来解决问题,以延迟执行。

所以这一行:

$('#openaccount-checking').focus();

成为这个:

   setTimeout(function(){
      $('#openaccount-checking').focus();
    }, 500);