Jquery onblur 第二次不起作用
Jquery onblur not working second time
我构建了一个基于 jQuery PHP 的即时搜索,我使用了一些淡入淡出效果以及 onblur 事件,除了单击正文中的任意位置第一次结果消失外,一切都工作正常,但同样,如果将鼠标悬停在输入字段上以显示结果,然后单击正文结果不会消失,即 onblur 第二次不起作用。
请参阅我的代码以更好地理解并建议任何可能的方法。
JQuery:
$(document).ready(function () {
$('#search-input').keyup(function(){
var keyword=$(this).val();
$.get('../search/instant-search.php', {keyword: keyword}, function(data){
$('#search-result').html(data);
});
});
$('#search-input').keyup(function(){ $('#search-result').fadeIn(400);});
$('#search-input').blur(function(){$('#search-result').fadeOut(400);});
$('#search-input').click(function(){$('#search-result').fadeIn(400);});
$('#search-input').mouseenter(function(){ $('#search-result').fadeIn(400);});
$('#search-input').mouseleave(function(){ $('#search-result').fadeOut(400)});
$('#search-result').mouseenter(function(){ $('#search-result').stop();});
$('#search-result').mouseleave(function(){ $('#search-result').stop();});
});
.HTML:
<input name="keyword" type="text" size="50" id="search-input" value = '';" />
<div id="search-result"></div><!--end of search-result-->
为什么要将这么多事件绑定到 #search 结果?
检查下面的代码是否有帮助。
<script language="javascript" >
$(document).ready(function () {
$('#search-input').keyup(function(){
var keyword=$(this).val();
$('#search-result').fadeIn(400);
//$('#search-result').html('ajax result data');
$.get('../search/instant-search.php', {keyword: keyword}, function(data){
$('#search-result').html(data);
});
});
$('#search-input').bind('blur', function() {
$('#search-result').fadeOut(400);
});
$('#search-input').bind('focus', function() {
$('#search-result').fadeIn(400);
});
});
</script>
你可以试试这个:
$('#search-input').on('blur', function() {
$('#search-result').fadeOut(400);
});
$('#search-input').on('mouseleave', function() {
// on mouse leave check that input
// is focused or not
// if not focused the fadeOut
if( !$(this).is(':focus')) {
$('#search-result').fadeOut(400);
}
});
$('#search-input').on('focus mouseenter', function() {
$('#search-result').fadeIn(400);
});
演示
根据评论
$('#search-input').on('focus mouseenter', function() {
$('#search-result').fadeIn(400);
});
$(document).on('click', function(e) {
if(e.target.id != 'search-input' && e.target.id != 'search-result') {
$('#search-result').fadeOut(400);
}
})
演示
相关文章:
- 更改第二次推送时不起作用的元素高度
- java脚本中的谷歌地图在第二次点击时不起作用
- Jquery移动转换复选框在Jquery onclick函数()中第二次选中不起作用
- 为什么第二次调用isNaN时它不起作用
- Jquery Onclick 事件函数第二次不起作用
- Jquery onblur 第二次不起作用
- JQuery$.post第二次点击不起作用
- 对已定义函数的第二次调用;不起作用
- ajax加载图像第二次在弹出jquery上不起作用
- 下拉列表的onChange()第二次不起作用
- jBox模态对话框Created监听器函数从第二次开始就不起作用了
- 函数在第二次出现时不起作用
- j查询克隆表单在同一页面中不起作用两次
- 在第二次加载时更改 iframe 样式,在 Internet Explorer 9 中不起作用
- ng-单击在表格内第二次单击时不起作用
- 引导轮播不起作用(一次显示所有图像)
- jQuery Ajax 在第二次出现时不起作用
- Jquery 滑块不起作用多次调用
- 将参数附加到URL地址在多个函数中不起作用(第二个函数不变)
- window.open两次不起作用(第二个窗口没有出现)-Blocker解决方法