2017-07-26 59 views
0

Here之间是问题的答案,感谢@ CumminUp07焦点切换两个div和网页

我发现这个link是有帮助的,但我不希望建议股利后消失在建议div中选择元素以便稍后选择更多建议。我试图用slideUp()和slideDown()jquery函数来实现这个策略,但当然这并不像show()和hide()jquery函数那么快,并且试图加速滑动函数最终会停止建议div再次出现。 这里是一个plunker什么我目前停留在:

$('#search').focus(function() { 
 
    $('#suggestions').slideDown(); 
 
}); 
 

 
$('#search').blur(function() { 
 
    $('#suggestions').slideUp(); 
 
}); 
 

 
$('#suggestions div').click(function() { 
 
    $('#search').val($(this).html()); 
 
    $('#suggestions').slideDown(); 
 
    $('#search').focus(); 
 
});
#search, 
 
#suggestions { 
 
    width: 200px; 
 
} 
 

 
#suggestions { 
 
    display: none; 
 
    border: 1px solid gray; 
 
    border-top: none; 
 
} 
 

 
#suggestions div:hover { 
 
    background-color: #99CCFF; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" id="search" value="" /> 
 
<br /> 
 
<div id="suggestions"> 
 
    <div>Toronto</div> 
 
    <div>Seattle</div> 
 
    <div>Dallas</div> 
 
</div>

我不相信这是一个重复到Action on blur except when specific element clicked with jQuery,因为超时没有为我想要的功能,工作不够好,也不允许你确保我可以点击两个不同的div,同时保持这两个div中的一个不被打开,直到文档中的不同对象被选中。

+0

如果我的理解是正确的,你在找什么有几个答案在这里:[除了特定时,对模糊的操作ic元素点击与jQuery](https://stackoverflow.com/questions/4901899/action-on-blur-except-when-specific-element-clicked-with-jquery) – Santi

+1

那么,这是什么问题?想让这个更快? – MJK

+1

是的,如果可能的话,我想尽快让div出现。我正在尝试第一条评论中的链接。 –

回答

3

您可以从完成停止动画,然后只显示建议

$('#search').focus(function() { 
    $('#suggestions').slideDown(); 
}); 

$('#search').blur(function() { 
     $('#suggestions').slideUp(); 
}); 

$('#suggestions div').click(function() { 
    $('#suggestions').stop(true,true).show(); 
    $('#search').focus(); 
    $('#search').val($(this).html()); 

}); 
+1

@Santi你是对的,我只是修复了答案 – CumminUp07

-1

也许它会帮助你

$('#search').focus(function() { 
    $('#suggestions').slideDown(); 
}); 

$('#search').blur(function() { 
    $('#suggestions').slideUp(); 
}); 

$('#suggestions div').click(function() { 
    $('#search').val($(this).html()); 
    $('#search').blur(); 
}); 
+0

答案应该是内容丰富的,并提供至少一个简单的解释。考虑指出你改变了什么或解释你正在尝试做什么。否则,你的答案就是一场不同寻常的游戏。 – Santi