Jquery 在不触发模糊的情况下,将聚焦输入聚焦在单击其他div上?

Jquery 在不触发模糊的情况下,将聚焦输入聚焦在单击其他div上?,jquery,html,Jquery,Html,我有一个带有输入文本字段的div容器。我在该输入的聚焦/模糊事件侦听器上附加了聚焦输入和聚焦输出动画。但是,我希望输入的行为方式是,当我单击这个div容器上的任意位置时,它与关注该输入本身是一样的(因此,如果输入已经聚焦,则不会重新聚焦) 使用 调用.clearQueue()方法时,队列上的所有函数 将从队列中删除尚未执行的 js $(function(){ $("#foo1").click(function() { //WARNING: #foo2 will blur

我有一个带有输入文本字段的div容器。我在该输入的聚焦/模糊事件侦听器上附加了聚焦输入和聚焦输出动画。但是,我希望输入的行为方式是,当我单击这个div容器上的任意位置时,它与关注该输入本身是一样的(因此,如果输入已经聚焦,则不会重新聚焦)

使用

调用.clearQueue()方法时,队列上的所有函数 将从队列中删除尚未执行的

js

$(function(){
    $("#foo1").click(function() {
        //WARNING: #foo2 will blur first THEN focus 
        $("#foo2").focus();
    });

        $("#foo2").focus(function() {
            $("#foo1").clearQueue().addClass("active",1000);
        });
        $("#foo2").blur(function() {
            $("#foo1").clearQueue().removeClass("active",1000);
        });


});

如果动画已处于活动状态,则不要重新应用动画

$(function(){
    $("#foo1").click(function() {
        //WARNING: #foo2 will blur first THEN focus 
        $("#foo2").focus();
    });

    $("#foo2").focus(function() {
        //dont reapply
        $("#foo1:not(.active)").addClass("active",1000);
    });
    $("#foo2").blur(function() {
        $("#foo1").removeClass("active",1000);
    });

});

请参阅:

队列是否在元素之间共享?如果有其他完全不相关的延迟函数正在排队,foo1.clearQueue会清除这些函数吗?@user1542639是的clearQueue会清除所有以前的函数您的答案很好,但我必须使用其他答案。我很犹豫是否要执行clearQueue,因为它可能会无意中删除其他不相关的延迟函数。它可以工作,但如果每个焦点有多个类更改,那么我将不得不相应地重新调整选择器。是的,如果您更改了需求,但
$(#foo1:not(.active)”)则必须更新代码。addClass(“活动ohAndAnotherClass”,1000);
仍然有效。
$(function(){
    $("#foo1").click(function() {
        //WARNING: #foo2 will blur first THEN focus 
        $("#foo2").focus();
    });

    $("#foo2").focus(function() {
        //dont reapply
        $("#foo1:not(.active)").addClass("active",1000);
    });
    $("#foo2").blur(function() {
        $("#foo1").removeClass("active",1000);
    });

});