2017-04-16 76 views
0

我试图将重点放在叠加层内的链接按钮上,当叠加层触发器被点击时。代码如下: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();     

}); 

由于某些原因,最后一行与焦点命令不起作用。我可以点击触发元素,除了焦点改变外,其他所有应该发生的事情都会发生。我在thr页面中的其他覆盖触发器上有类似的焦点更改,他们工作,所以我不知道为什么这个没有。我查了身份证,这是正确的。任何人都可以看看并告诉我发生了什么事?您可以在http://investar.meshbr.com上查看该网站,相关触发器是顶部导航栏中的“打开帐户”按钮。

感谢,

布赖恩

+0

你尝试'.triggerHandler( “焦点”)'对此有何看法? - .focus()仅适用于可见元素。 – Felix

回答

0

您正在使用$(document).ready(function() {})里面的代码? 因为如果你在外面没有加载。

+0

没有问题的代码是在document.ready中。 –

0

当我检查你的网站和打开帐户按钮点击事件。您的JS引用的弹出式文件有检查选项有问题。因此它不工作。

请检查这一行this.popupMenu.open();在你的JS“MenuBarItemLink.JS”的行175和180有可能是在网上为它显示()属性的工作175.

+0

嗨塔潘拉,谢谢你指出这一点。我看到问题出在哪里,不幸的是,它似乎不是焦点问题的罪魁祸首,因为即使我完全禁用该脚本,焦点推荐仍然无效。 popupMenuOpen发射的原因是一个错误,因为我的cms代码有一个小故障输出代码,说一些菜单项有孩子,而他们真的没有,并且MenuBarItemLink js文件认为他们有孩子因此,并且试图打开不存在的子菜单。我把它关闭了,但焦点问题仍在发生。 –

0

看起来像原来的海报通过在setTimeout包裹focus()拖延解决问题它的执行。

所以这行:

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

变为这样:

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