基于最后一个活动元素聚焦div

时间:2013-08-06 14:37:31

标签: javascript jquery html

我有一个包含iframe(其中包含一些锚元素)和一个锚标记(关闭按钮)的div。在使用键盘导航时,如果“关闭”按钮是最后一个活动元素,则应该聚焦div。

但对我来说,重点始终是div中的iframe。我希望把重点放在div上。

<a href="javascript:" class="clicker">click to open</a>

<div id="wOverlay" style="height: 307px; width: 645px; display: none;">
<span style="position:absolute;left:-1500px;top:0;width:1;height:1;overflow:hidden;">Beginning of dialog content</span>
<iframe scrolling="no" frameborder="0" src="https://www.google.com" title="Quick Look - Opens a simulated dialog">
</iframe>
<a id="overlayClose" class="MultiBoxClose" href="javascript:void(0)">Close</a>

脚本:

$('.clicker').bind('click',function(){


     $('#wOverlay').attr('tabIndex',-1);
     $('#wOverlay').show().focus();

});

$(document).bind('keydown', function(e){
e = e || window.event;

if(e.keyCode == 9) {
    if($(document.activeElement).hasClass('MultiBoxClose')){

                    $('#wOverlay').focus();

    }
}
});

请提供任何解决方案

1 个答案:

答案 0 :(得分:2)

默认情况下,Div不能获得焦点,只能使用表单元素和链接。但是,在最近的浏览器中,您可以通过显式设置其tabindex来为其分配焦点。

查看http://api.jquery.com/focus/