我有一个附加到带有 id 关键字的输入标签的自动完成功能。自动完成的结果在带有 id 结果的分区和带有类项的分区内的每个结果项中可见。
这是 HTML 标记:

<input name='institute' type="text" placeholder="Start typing.."id="keyword">
<div id="results">
    <div class="item"><p>Item 1</p></div>
    <div class="item"><p>Item 2</p></div>
    <div class="item"><p>Item 3</p></div>
</div>

除法结果具有固定高度。这是CSS:
width:80%;
height: 200px;
overflow-y: auto;

这是我与我的问题相关的 jquery 部分
$("#keyword").blur(function() {
    $("#results").fadeOut(500);
  })
  .focus(function() {
    $("#results").show();
  });

现在,每当结果的高度超过 200px 时就会出现问题。我得到了一个滚动条,但是每当我点击滚动条时,输入标签关键字就会失去焦点并且除法结果逐渐消失。我想在使用滚动时保留除法结果,并且仅在选择元素后才使其淡化。我如何解决它?

最佳答案

有趣的问题,也是在 Chrome 和 IE 中工作的真正挑战:

var canBlur= true;

$('#results')
  .mousedown(function(event) {
    canBlur= event.target.id !== 'results';
  })

$(document)
  .mousemove(function() {
    if(!canBlur) {
      $('#keyword').focus();
    }
    canBlur= true;
  });

$('#keyword')
  .blur(function(event) {
    if(canBlur) {
      $('#results').fadeOut(500);
    }
  })
  .focus(function() {
    $('#results').fadeIn(0);
  })

Fiddle

关于javascript - 阻止 split 失去焦点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30765358/

10-12 05:28