html,body click事件,除了具有焦点功能的元素

时间:2017-04-22 08:45:39

标签: javascript jquery

我需要显示关注我可以使用下面的jquery实现的输入的选项

HTML

<div class="form-field select-subject" id="valexp2_subject">
<span class="input-bkg input-bkg-select">
<input type="text" id="subject" name="subject" placeholder="Please select the subject">
</span>
<span class="textfieldRequiredMsg">Your subject is required.</span>
<div class="options">
<ul>
<li><a href="javascript:void(0);">Loremp ipsum</a></li>
<li><a href="javascript:void(0);">Dolor blah</a></li>
<li><a href="javascript:void(0);">Sit amet</a></li>
<li><a href="javascript:void(0);">Consectetur blah </a></li>
<li><a href="javascript:void(0);">Adipiscing elit</a></li>
</ul>
</div>
</div>

的jQuery

$(document).ready(function() {
  $('.select-subject').each(function() {
    $(this).find('input').focus(function() {
      $(this).parents('.select-subject').find('.options').fadeIn();
      $('html').click(function() {
        if ($('.options').is(':visible') {
            //hide .options div
            }
            });
      });
    });
  });

CSS

.options {
 display: none;
}

当.options可见并且用户点击<html><body>中的任意位置时,我需要隐藏div。我尝试了多种选择,但它没有通过。谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

您的意思如下,即focus input hide options {再次blur再次visible

  

模糊事件在失去焦点时会发送到元素。

     

焦点事件在获得焦点时发送给元素。

$(document).ready(function() {
    $('.select-subject').each(function() {
        $(this).find('input').focus(function() {
            $(this).parents('.select-subject').find('.options').fadeIn();
        });
    });
    $('.options li').each(function() {
        $(this).click(function() {
            var selectValue = $(this).find('a').html();
            console.log(selectValue);
            $(this).parents('.select-subject').find('input').val(selectValue).focus();
            $(this).parents('.select-subject').find('.options').fadeOut('fast');
        });
    });
    $("#subject").on("focus",function(){
    	$(".options").hide();
    });
    $("#subject").on("blur",function(){
    	$(".options").show();
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="form-field select-subject" id="valexp2_subject">
<span class="input-bkg input-bkg-select">
<input type="text" id="subject" name="subject" placeholder="Please select the subject">
</span>
<span class="textfieldRequiredMsg">Your subject is required.</span>
<div class="options">
<ul>
<li><a href="javascript:void(0);">Loremp ipsum</a></li>
<li><a href="javascript:void(0);">Dolor blah</a></li>
<li><a href="javascript:void(0);">Sit amet</a></li>
<li><a href="javascript:void(0);">Consectetur blah </a></li>
<li><a href="javascript:void(0);">Adipiscing elit</a></li>
</ul>
</div>
</div>