获取元素,导致javascript中的更改事件

Dot*_*ter 7 javascript jquery onchange event-handling

我希望在onchange事件处理程序中知道,哪个控件导致更改(或模糊)事件.我试图使用jQuery $(":focus")实现这一目标,但是

$('.some_class').change(function (e) {
    console.log(e.target);
    console.log($(':focus').get(0)); // always `undefined`.
    /* ......... other code......... */
});
Run Code Online (Sandbox Code Playgroud)

Mad*_*dao 6

$('.some_class').change(function (e) {
console.log(e.target);
console.log($(':focus').); // just remove the .get(0)
Run Code Online (Sandbox Code Playgroud)

}); 删除.get(0),你可以得到焦点上的元素


Den*_*nis 4

在 jQuery 中,this指的是具有事件处理程序的元素 event.target,如果event是事件处理程序回调的参数,则将是事件源,例如,如果您单击了子元素并且单击冒泡了。

focus 事件在模糊事件之后触发,因此会有一小段时间没有元素获得焦点。如果你确实需要这个,你可以设置一个短暂的超时,看看另一个在input原来的焦点模糊几毫秒后是否获得焦点。