I have a main div (parent) with a input (child) and 2 other child div (clickable).
I want to capture focus out event for the main div - not when input or other 2 clickable div are clicked or focused. I have set up an event handler using jQuery to capture focusin focusout events on all the elements.
What I see is when I click on the input:
- first input is focused
- then the main div.
If I click on any other clickable divs
- event fires first focusoutfor input
- then main div and then other div gets focus in and main div get focusin.
I don't want main div to loose focus when clicked on other clickable divs.
How can I achieve this? I want to validate the input on lose focus but not when clicked other divs.
So far this is what I have : Fiddle
HTML :
<div id="main">
    <input id="i" type="text" />
    <div id="Div2" class="icons" style="background-color:blue; right: 25px;" onclick="log('Clear Clicked');"></div>
    <div id="Div1" class="icons" style="background-color:red;" onclick="log('DD Clicked');"></div>
</div>
CSS :
* {
    -webkit-box-sizing: border-box;
    /* Safari/Chrome, other WebKit */
    -moz-box-sizing: border-box;
    /* Firefox, other Gecko */
    box-sizing: border-box;
    /* Opera/IE 8+ */
}
#main {
    top: 50px;
    left: 200px;
    position: absolute;
    border: 1px solid #00bfff;
    width: 250px;
    height: 27px;
}
input {
    border: none;
    width: 248px;
    height: 25px;
    position: absolute;
    z-index: 200;
}
.icons {
    text-align:center;
    border:1px solid blue;
    height: 23px;
    width: 23px;
    position: absolute;
    top: 2px;
    right: 2px;
    z-index: 99999999999999999999999;
    background-position: center;
    background-repeat: no-repeat;
}
jQuery :
$("#main").focusin(function () {
    log("Main div got focused");
});
$("#i").focusin(function () {
    log("input got focused");
});
$("#Div2").focusin(function () {
    log("dropdown div got focused");
});
$("#Div1").focusin(function () {
    log("clear div got focused");
});
$("#main").focusout(function () {
    log("Main div lost focused");
});
$("#i").focusout(function () {
    log("input lost focused");
});
$("#Div2").focusout(function () {
    log("dropdown div lost focused");
});
$("#Div1").focusout(function () {
    log("clear div lost focused");
});
function log(msg) {
    //window.console.log(msg);
    $("body").append("<p>" + msg + "</p>");
}
Any help or guidance appreciated
 
     
     
     
     
     
     
    