javascript - jquery失焦时隐藏元素

标签 javascript jquery html css

我正在为键盘用户构建一组合规性链接。目标是仅在第一个链接的目的地获得焦点后显示第二个跳过链接(用户已单击“跳过链接并且它已到达 href 目的地)。以下代码旨在处理此问题,但不会当第一个没有焦点时隐藏第二个跳过

jQuery:

if ($('#anchor').focus) {
    $('#skip-link-tabs').show();
}else {
    $('#skip-link-tabs').hide();
}

html:

<span id="anchor" tabindex="0" style="margin-right:10px">Main</span>

<a id="skip-link-tabs" href="#toTabs" style="margin-right:10px; color:black;">To tabs</a>

<span id="toTabs" tabindex="0" style="margin-right:10px">Tabs</span>

此代码已被最小化以仅显示相关部分,因为这是一个相当大的页面。

最佳答案

focus 不是您的 jQuery 对象的属性。如果是,它仍然无法工作,因为代码不会被事件更新。所以你需要做的是检查 focus 事件,例如:

$('#anchor').focus(function() { 
  $('#skip-link-tabs').show();
});

focus event

你可以隐藏它

$('#anchor').focusout(function() { 
  $('#skip-link-tabs').hide();
});

focusout event

检查 Fiddle

也许更好的是:

var skipLinkTabs = $('#skip-link-tabs');
$('#anchor').focus(function() { 
  skipLinkTabs.show();
}).focusout(function() { 
  skipLinkTabs.hide();
});

(链接 + 缓存 jQuery 元素)

关于javascript - jquery失焦时隐藏元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41472519/

相关文章:

javascript - 如何使用 JavaScript 在 HTML 中创建文本文件

html - 类中类,ie6中的错误

javascript - 为 div 可见性使用过渡

javascript - 空白 map 图 block - 错误 410 消失(Mapbox 和 Leaflet JS)

javascript - 是否可以在客户端和服务器端设置 td 的宽度?

javascript - 在jQuery中获取数组中选中复选框列表的值

javascript - 如何在 jqGrid 的 tr 中获取特定的 td?

javascript - 当信息窗口打开时,marker.setPosition() 会将标记带入 View - 如何阻止此操作?

javascript - 如何在每次调用 jquery 插件函数时使用不同的外部样式表?

html - 在另一个 div 前面的 div