2017-01-01 3 views
0

У меня есть этот код https://fiddle.jshell.net/cabeqaky/26/ Вопрос заключается в том, чтобы сделать это на first DIV click, вход получить фокус и на 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 
} 

ответ

0

Вы можете использовать MouseDown событие на ДИВ и проверить, если вход имеет фокус. e.preventDefault() используется, чтобы избежать фокусировки на элементе div на событии mousedown.

$("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>

+0

Вот он, спасибо человеку;) – art

+0

@art Добро пожаловать и с Новым годом :) – Deep

+0

, но вот проблема, его работа с jquery 2.1.1, правильно? – art

0

$(".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>

+0

нет, это не работает, прочтите описание снова PLS – art

+0

@art мой ответ редактируется – hubman

0
$(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(); 
     } 
    }); 
}); 
+0

нет, это не работает, прочтите описание снова PLS – art

+0

вы положили в JQuery библиотека в голове, как: –

+0

<скрипт SRC = "https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"> –

0

использовать яваскрипта функцию на DIV:

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>

+0

нет, это не работает , прочитайте описание снова PLS – art

+0

https: // скрипка .jshell.net/4syu2r1g/ – Roge

+0

Вам необходимо адаптировать предыдущий код к вашим потребностям. – Roge

Смежные вопросы