jquery - 将焦点切换到另一个元素的焦点显示的字段

标签 jquery css

我有四个输入元素 input0、input1、input2 和 input 3,tabindex 分别为 1 和 2、3、4

<input name="input0" class="input-0" tabindex="1">
<input name="input1" class="input-1" tabindex="2">
<input name="input2" class="input-2" tabindex="3">
<input name="input3" class="input-3" tabindex="4">

输入 2 默认使用 css 隐藏 并在它获得焦点输入 1 时显示

<style>
    .input-2{
        display:none
    }

    .input-1:hover~.input-2{
        display:block
    }
</style>

现在,当我按下 Tab 键并从 input1 松开焦点时,我想专注于 input2... 但是如果我去输入 0 表单输入 1(我的意思是按 shift+tab)或者输入 3 我想隐藏 input2

jsfiddle Demo

最佳答案

一点点 JS 就可以解决这个问题:

document.querySelector(".input-1").onfocus = function() {showInput()};
document.querySelector(".input-3").onfocus = function() {hideInput()};

//Hides the input if focus is lost on it:
//document.querySelector(".input-2").onblur = function() {hideInput()};


//Binds the Hide to all inputs but input-2
var x = document.querySelectorAll('input');
x.forEach(function(element) {
	if (!element.classList.contains("input-2") && !element.classList.contains("input-1")) {
		element.onfocus = function() {hideInput()};
	}
});

function showInput() {
  document.querySelector(".input-2").style.display = "block";
}

function hideInput() {
  document.querySelector(".input-2").style.display = "none";
}
input{
 display:block;
 margin-top:10px;
}

.input-2{
	display:none
}

.input-1:focus~.input-2{
	display:block
}
<div>
  <input name="input0" class="input-0" tabindex="1">
  <input name="input1" class="input-1" tabindex="2">
  <input name="input2" class="input-2" tabindex="3">
  <input name="input3" class="input-3" tabindex="4">
</div>

关于jquery - 将焦点切换到另一个元素的焦点显示的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56022376/

相关文章:

javascript - 使用 ng-view (Angularjs) 时隐藏某些 HTML 元素

javascript - jQuery php 变量问题

css - 加载所有内容后重新设置小部件样式

html - 段落标记的边距超出 Div

javascript - Jquery删除后隐藏

html - 文本在跨度内右对齐

html - 外部 CSS 的 AMP 页面引用

javascript - jquery 选择器中的动态 ID 不起作用

javascript - 通过带有索引的 jquery ajax 发送 php 数组并接收数组值

jquery - JSF 2 中的后渲染事件处理程序?