Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将多个元素作为单个单元触发onBlur_Javascript_Jquery - Fatal编程技术网

Javascript 将多个元素作为单个单元触发onBlur

Javascript 将多个元素作为单个单元触发onBlur,javascript,jquery,Javascript,Jquery,我有两个输入,它们一起构成一个语义单元(想想一个小时和分钟的输入一起构成一个时间输入)。如果两个输入都失去焦点,我想调用一些Javascript函数,但如果用户只是在这两个输入之间跳转,我不想触发任何东西 我曾尝试将这两个输入包装在一个div中,并向该div添加onBlur,但它从未触发 接下来,我尝试将onBlur添加到两个输入中,并让它们通过jQuery检查另一个的:focus属性,但似乎当onBlur触发时,下一个元素还没有收到focus 对如何实现这一目标有何建议 编辑:有人质疑这个目的

我有两个输入,它们一起构成一个语义单元(想想一个小时和分钟的输入一起构成一个时间输入)。如果两个输入都失去焦点,我想调用一些Javascript函数,但如果用户只是在这两个输入之间跳转,我不想触发任何东西

我曾尝试将这两个输入包装在一个div中,并向该div添加onBlur,但它从未触发

接下来,我尝试将onBlur添加到两个输入中,并让它们通过jQuery检查另一个的:focus属性,但似乎当onBlur触发时,下一个元素还没有收到focus

对如何实现这一目标有何建议


编辑:有人质疑这个目的。我想根据这两个输入包含的值更新一些其他字段,但理想情况下,如果用户仍在更新第二个输入(例如,如果用户从第一个输入切换到第二个输入),我不想更新其他字段。

此行为的目的是什么? 模糊事件在一个场失去焦点时触发,一次只能有一个场获得焦点

例如,在验证的情况下,您可以对两个字段的模糊应用相同的函数,并检查所有字段的值

没有上下文,很难对您提供更多帮助


d、

我在这里举了一个工作示例:

它使用的是:

$('#t1, #t2').blur(function(){
setTimeout(function(){
    if(!$('#t1, #t2').is(':focus')){
        alert('all good');
    }
},10);
});

是的,但由于您只能有一个焦点,您最好使用
true
false
。如果使用布尔标志,您在一定程度上依赖事件触发顺序。谢谢,这看起来应该可以工作,尽管比我希望的麻烦更多:(问题是,focus是否有机会在超时运行之前启动。非零超时可能是有保证的,零超时取决于JS引擎内部,我对此不太感兴趣。这更多的是一个评论,而不是一个答案。
$('#t1, #t2').blur(function(){
setTimeout(function(){
    if(!$('#t1, #t2').is(':focus')){
        alert('all good');
    }
},10);
});