Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在jquery失去焦点时隐藏元素_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 在jquery失去焦点时隐藏元素

Javascript 在jquery失去焦点时隐藏元素,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我正在为键盘用户建立一组符合性链接。目标是仅在第一个链接的目的地聚焦后显示第二个跳过链接(用户单击“跳过链接并到达href目的地)。以下代码旨在处理此问题,但在第一个链接没有聚焦时不会隐藏第二个跳过 jQuery: if ($('#anchor').focus) { $('#skip-link-tabs').show(); }else { $('#skip-link-tabs').hide(); } <span id="anchor" tabindex="0" style

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

jQuery:

if ($('#anchor').focus) {
    $('#skip-link-tabs').show();
}else {
    $('#skip-link-tabs').hide();
}
<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>
html:

if ($('#anchor').focus) {
    $('#skip-link-tabs').show();
}else {
    $('#skip-link-tabs').hide();
}
<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>
Main
标签

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

尝试检查
focus()
而不是
focus

尝试检查
focus()
而不是
focus

focus
不是jQuery对象的属性。如果是,它仍然不起作用,因为代码不会被事件更新。因此,您需要做的是检查
focus
事件,例如:

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

你可以通过这样做来隐藏它

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

结帐

也许更好的办法是:

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

(链接+缓存jQuery元素)

focus
不是jQuery对象的属性。如果是,它仍然不起作用,因为代码没有被事件更新。因此,您需要做的是检查
focus
事件,例如:

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

你可以通过这样做来隐藏它

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

结帐

也许更好的办法是:

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

(链接+缓存jQuery元素)

以下代码使用焦点显示链接,并在失去焦点时隐藏模糊

$(“#锚定”).focus(函数(e){
$(“#跳过链接选项卡”).show();
});
$(“#锚”).blur(函数(){
$(“#跳过链接选项卡”).hide();
});

主要

选项卡
以下代码使用焦点显示链接,并在失去焦点时隐藏模糊

$(“#锚定”).focus(函数(e){
$(“#跳过链接选项卡”).show();
});
$(“#锚”).blur(函数(){
$(“#跳过链接选项卡”).hide();
});

主要

Tabs
这是
focus()
,而不是
focus
@Ionut你好。现在检查分辨率我可能必须是一个函数,例如
$(“#锚”)。focus(function(){…});
@putvande这就是问题所在,如果你想将此设置为答案,我想向上投票并选择作为答案。这是
focus()
,而不是
焦点
@Ionut您好。现在检查分辨率我可能必须是一个函数,例如
$('#锚点')。焦点(函数(){…})
@putvande这就是问题所在,如果你想将此设置为答案,我想投票并选择作为答案。我只是注意到评论中已经讨论了这一点,我的道歉我只是注意到评论中已经讨论了这一点,我的道歉