我有一个输入字段,在那里我试图提出自动完成建议。代码看起来像
<input type="text" id="myinput">
<div id="myresults"></div>
在输入的blur()
事件中,我想隐藏结果的div:
$("#myinput").live('blur',function(){
$("#myresults").hide();
});
当我写一些东西到我的输入我发送请求到服务器并得到json响应,解析成ul-
当我点击这个解析的li元素时,我想将值从li设置为input并隐藏#myresults
div
$("#myresults ul li").live('click',function(){
$("#myinput").val($(this).html());
$("#myresults").hide();
});
一切都很好,但是当我单击我的liblur()
事件在单击()之前触发,并且输入的值不会得到li的html。
如何在blur()
之前设置click()
事件?
我遇到了这个问题,使用mousedown
对我来说不是一个选择。
我通过在处理函数中使用setTimeout
解决了这个问题
elem1.on('blur',function(e) {
var obj = $(this);
// Delay to allow click to execute
setTimeout(function () {
if (e.type == 'blur') {
// Do stuff here
}
}, 250);
});
elem2.click( function() {
console.log('Clicked');
});
$(document).on('blur', "#myinput", hideResult);
$(document).on('mousedown', "#myresults ul li", function(){
$(document).off('blur', "#myinput", hideResult); //unbind the handler before updating value
$("#myinput").val($(this).html()).blur(); //make sure it does not have focus anymore
hideResult();
$(document).on('blur', "#myinput", hideResult); //rebind the handler if needed
});
function hideResult() {
$("#myresults").hide();
}
不停摆弄
听mousedown
而不是单击
。
按下鼠标按钮时,
mousedown
和blur
事件会一个接一个地发生,但单击
仅在松开鼠标按钮时才会发生。
您可以在
mousedown
中preventDefault()
阻止下拉菜单窃取焦点。稍有优势的是,释放鼠标按钮时将选择该值,这就是原生选择组件的工作方式。JSFIDLE
js prettyprint-override">$('input').on('focus', function() {
$('ul').show();
}).on('blur', function() {
$('ul').hide();
});
$('ul').on('mousedown', function(event) {
event.preventDefault();
}).on('click', 'li', function() {
$('input').val(this.textContent).blur();
});
问题内容: 当输入框处于焦点状态时,不会调用该函数。 我包含在文件中,它是在 jQuery是v1.10.2版和Angular.js是v1.0.7版之前。 可能会发生什么? 问题答案: ngFocus在Angular 1.0.7上不可用。在Angular 1.2上可用。 您可以创建自己的ngFocus指令,这非常简单,请在此处查看: https://gist.github.com/eliotsyke
如图:el-select使用文档提供的focus事件和blur事件,当focus的时候执行blur,使其失去焦点收起下拉面板。但是执行了blur事件后,触发了2次focus,想问问原因,如何解决 业务需求是:点击下拉框的时候,根据条件判断是否要展开下拉面板,不用el-select的disabled禁止,所以用以上方式实现,但是有触发2个的问题
本文向大家介绍Javascript中click与blur事件的顺序详析,包括了Javascript中click与blur事件的顺序详析的使用技巧和注意事项,需要的朋友参考一下 一、现象 最近在开发中碰到了一个需求,具体需求如下图。 这是一个很常见的需求,input框负责在点击回车和失焦的时候确认输入。button负责清除输入,input绑定代码为: "X"绑定的代码为: 尝试着执行代码,并按照先输
在jQuery中,我看到blur()链接到focus(),如下所示: 为什么focus事件被激发后blur()不立即执行?当blur()链接到focus()时,它直到字段失去焦点之后才执行,因为它是链接的,我认为它会在focus事件被激发之后立即激发,即使输入字段还没有失去焦点。
本文向大家介绍jQuery事件blur()方法的使用实例讲解,包括了jQuery事件blur()方法的使用实例讲解的使用技巧和注意事项,需要的朋友参考一下 实例 当输入域失去焦点 (blur) 时改变其颜色: 定义和用法 当元素失去焦点时发生 blur 事件。 blur()函数触发 blur 事件,或者如果设置了 function 参数,该函数也可规定当发生 blur 事件时执行的代码。 提示:早
事件 事件:用户与浏览器之间特定的交互瞬间。 事件类型 web浏览器发生的事件有很多类型,不同的类型有着不同的信息。"DOM3级事件"包含有:UI事件、焦点事件、滚轮事件、文本事件、鼠标事件、键盘事件、合成事件、变动事件、变动名称事件等。 UI事件 UI事件指的是那些 不一定与用户操作有关 的事件。DOM规范中留下向后兼容。UI事件包含: load:当页面加载后在window上面触发,当所有框架加