jquery: how to loose the focus so that it triggered again?

Viewed 41

When the dropdown is open, (onFocus), I apply a class and when any dropdown menu is clicked I remove that class.

But, the problem is focus is triggered once. but I need to trigger it multiple times. I mean as far as dropdown is open, I need to apply that active class.

here is my code

$('body').on('focus', '.test', function () {
  $('.select').toggleClass('active');
  console.log('hello');
});

$('#slct').click(function () {
  $('.test').blur();
  $('.select').removeClass('active');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="test">
  <div class="select">
    <select name="slct" id="slct">
      <option class="default_option" value="A">A</option>
      <option value="AAAA">AAAA</option>
      <option value="CNAME">CNAME</option>
      <option value="MX">MX</option>
      <option value="NS">NS</option>
      <option value="PTR">PTR</option>
      <option value="SOA">SOA</option>
      <option value="SRV">SRV</option>
      <option value="TXT">TXT</option>
      <option value="CAA">CAA</option>
    </select>
  </div>
</div>

1 Answers

$('#slct').on('change', function () {
  console.log('You select '+this.value);
  $(this).parents('.select').removeClass('active');
  $(this).blur();
});

$('#slct').focus(function(){
  $(this).parents('.select').addClass('active');
});

$('#slct').blur(function(){
  $(this).parents('.select').removeClass('active');
});
.test{
  border:1px solid red;
}
.select.active{
  background:red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="test">
  <div class="select">
    <select name="slct" id="slct">
      <option class="default_option" value="A">A</option>
      <option value="AAAA">AAAA</option>
      <option value="CNAME">CNAME</option>
      <option value="MX">MX</option>
      <option value="NS">NS</option>
      <option value="PTR">PTR</option>
      <option value="SOA">SOA</option>
      <option value="SRV">SRV</option>
      <option value="TXT">TXT</option>
      <option value="CAA">CAA</option>
    </select>
  </div>
</div>

Related