javascript开启模糊检测按钮是否按下

javascript开启模糊检测按钮是否按下,javascript,Javascript,我有一个输入和一个按钮。我想要以下行为: 1.当离开输入焦点时(在模糊事件上),我只想在按下按钮导致“在模糊”时执行某个功能。换言之,在“关于模糊”中,我想知道下一步的焦点是什么。如果是按钮,那么我知道用户按下了按钮,我需要做些什么。如果用户只是点击离开,我不想做任何事情 这就是我所做的: <td class='bid-floor-col' > <input type='text' class='bid-floor-input display-none' data-i

我有一个输入和一个按钮。我想要以下行为: 1.当离开输入焦点时(在模糊事件上),我只想在按下按钮导致“在模糊”时执行某个功能。换言之,在“关于模糊”中,我想知道下一步的焦点是什么。如果是按钮,那么我知道用户按下了按钮,我需要做些什么。如果用户只是点击离开,我不想做任何事情

这就是我所做的:

<td class='bid-floor-col' >
    <input  type='text' class='bid-floor-input display-none' data-id='<%=ads.id %>' value='<%= display_price_floor(ads) %>' orig_value='<%= display_price_floor(ads) %>'/>
    <button class='bid-floor-save display-none' data-id='<%=ads.id %>'>save</button>
</td>
基本上,在“开启模糊”中,我会延迟使按钮不可见。如果按钮在该时间内获得焦点,它将清除其队列,从而保持自身可见。

尝试使用

document.getElementById('test').addEventListener('blur',函数(e){
设置超时(()=>{
console.log(document.activeElement)
}, 500)
})

点击
您可以使用获取事件目标接收焦点


按钮
var input=document.querySelector('input');
var button=document.querySelector('button');
按钮。addEventListener(“单击”,函数(e){
控制台日志(“单击”);
//在这里做点什么
});
input.addEventListener(“模糊”,函数(e){
console.log(如relatedTarget);
如果(!e.relatedTarget | | e.relatedTarget.id!=“btn”){
控制台日志(“模糊”);
//在这里做点什么
}
});

请参阅抱歉,这是我的第一篇文章,我确实读过。我的帖子有什么问题吗?欢迎来到SO。请仔细阅读。因此,这不是免费的编码或教程服务。您必须表明您在解决自己的问题上付出了一些努力。单击按钮后,您到底想做什么,这似乎是一个棘手的用例?在我上面更新的示例中,我想做的是通过console.log()调用反映出来的。做得好!但是从这个故事来看,仅仅检查输入是否集中在按钮点击上不是更容易吗?只要你点击按钮,焦点就会集中在将一个新手按到javascript上。你在上面的建议是,我发布了延迟执行的函数,并在该函数中检查按钮是否没有收到焦点。我的问题是,在“启用模糊”期间,默认情况下,代码应该使按钮消失,并且只有当它是下一次单击的目标时,才使其可见。我认为您的示例假定按钮保持可见。@TervelAtanassov如果此代码显示如何获取下一个活动元素,您可以从活动元素中获取id或任何选择器,并对该元素执行任意操作
$(document).ready(function(){
    $('.bid-floor-input').on('blur', function()  {
        var id = $(this).data('id');
        $('.bid-floor-input[data-id=' + id + ']').addClass('display-none');
        $('.bid-floor-save[data-id=' + id + ']').queue(function (next) {
          $(this).addClass('display-none');
        })
        $('.bid-floor-renderer[data-id=' + id + ']').removeClass('display-none');
    });
    $('.bid-floor-save').on('click', function()  {
        var id = $(this).data('id');
        $('.bid-floor-save[data-id=' + id + ']').clearQueue();
        console.log('saving id ' + id);
    });
});