获取触发jquery blur()事件的点击对象
Get the clicked object that triggered jquery blur() event
假设我这样做:
$(target).blur(function(e){
//do stuff
});
有没有一种方法可以获取被点击的对象以触发模糊操作?
我尝试使用e.target
,但这似乎是返回附加到模糊操作的对象,而不是单击的对象。
诀窍是等待额外的勾号:
$(el).blur(function (event) {
// If we just hangout an extra tick, we'll find out which element got focus really
setTimeout(function(){
document.activeElement; // This is the element that has focus
},1);
})
如果我正确理解你的问题,这应该可以做到:
$(function() {
var clicky;
$(document).mousedown(function(e) {
// The latest element clicked
clicky = $(e.target);
});
// when 'clicky == null' on blur, we know it was not caused by a click
// but maybe by pressing the tab key
$(document).mouseup(function(e) {
clicky = null;
});
$(target).blur(function(e) {
console.log(clicky);
});
});
在事件处理程序中,this
将是事件绑定到的元素,而e.target
将是触发事件的元素(可能与this
相同,也可能与之不同)。
您正在处理blur
事件,而不是click
事件。因此,在您的事件中,您将拥有blur
ed的元素。如果您想要click
ed元素,则需要另一个事件来获取该元素。
blur
可以由其他事件触发,例如聚焦某个东西;而不仅仅是点击某个东西。因此,无法获得"导致模糊"的元素。
在blur
处理程序函数中使用此函数将为您提供模糊元素。
$(target).blur(function(e){
var blurredElement = this; // dom element
// To make a jQuery object
var blurredElement = $(this);
});
在blur
事件中,您无法捕获单击的元素。要获得click
ed元素,您需要click
事件。例如:
$(element).click(function() {
var clickedElement = this;
});
为了获得焦点元素,您可以使用:focus
选择器,如:$(':focus')
将返回文档中的焦点元素。
相关文章:
- 如何从jQuery的事件对象中检索属性
- 如何在JavaScript中基于事件对象获取文件名
- 如何避免在这种情况下修改事件对象
- 如何在事件处理程序中获取 javascript 事件对象
- 如果在设置侦听器之前触发了 DOMContentLoaded 事件,如何检索“事件”对象
- addEvent 给出空事件对象
- 修改鼠标事件对象的“目标”以进行事件委派
- 如何将参数传递给backbone.js中事件对象中绑定的函数
- 从ng重复奇数内部的ng点击访问事件对象
- 如何从 React 中的事件对象访问自定义属性
- 如何将事件对象传递给对象中的函数
- 正在发送事件对象
- 是否可以获得“”的事件对象;当前“;或“;最后一个“;事件,而不将其作为处理程序中的参数接收
- 如何将事件对象字符串化
- 通过angular传递关于事件预防的信息;s事件对象
- Javascript事件对象:其中是选择器
- Meteor.js:如何检索事件对象的父元素的数据属性
- JavaScript 如何重新识别事件对象变量
- 事件对象在此代码中的工作原理
- 是为响应 DOM 事件而创建的多个事件对象