输入焦点和模糊

Input focus and blur

我有这个代码https://fiddle.jshell.net/cabeqaky/26/ 问题是如何在 first div click、input get focus 和 on second div click 输入不集中。怎么做? :)

HTML

<input class="inp" type="text">
<div class="box"></div>

CSS

.box{
width:50px;
height:50px;
background-color:green;
margin-top:10px;
border:1px black solid;
cursor:pointer
}

 $(".box").click(function(){
    document.getElementsByClassName("inp")[0].focus();

})
    .box{
    width:50px;
    height:50px;
    background-color:green;
    margin-top:10px;
    border:1px black solid;
    cursor:pointer
    }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

    <input class="inp" type="text">
    <div class="box"></div>

$(document).ready(function(){
    $("div.box").data("toggle", 0);
    $("div.box").click(function(){
        var toggle = $("div.box").data("toggle");
        if(toggle === 0){
            $("div.box").data("toggle", 1);
            $("input.inp").focus();
        } else {
            $("div.box").data("toggle", 0);
            $("input.inp").blur();
        }
    });
});

在 div 上使用 javascript 函数:

var focus = false;

function toggleFocus() {
  focus = !focus;
  if (focus) {
    document.getElementById("focusedInput").focus();
  }
}
<input class="inp" id="focusedInput" type="text">
<div class="box" onclick='toggleFocus()'></div>

您可以在 div 上使用 mousedown 事件并检查输入是否有焦点。 e.preventDefault() 用于避免在 mousedown 事件中将焦点放在 div 元素上。

$("div").on("mousedown",function(e){  
  e.preventDefault();
  if($(".inp:focus").is(':focus'))
    $(".inp").blur();
  else
   $(".inp").focus();
})
.box{
width:50px;
height:50px;
background-color:green;
margin-top:10px;
border:1px black solid;
cursor:pointer
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<input class="inp" type="text">
<div class="box"></div>