提问者:小点点

在jQuery输入字段事件处理中链接focus()和blur()?


在jQuery中,我看到blur()链接到focus(),如下所示:

$("input").focus(function(){
    $(this).css("background-color", "blue");
}).blur(function(){
    $(this).css("background-color", "red");
});

为什么focus事件被激发后blur()不立即执行?当blur()链接到focus()时,它直到字段失去焦点之后才执行,因为它是链接的,我认为它会在focus事件被激发之后立即激发,即使输入字段还没有失去焦点。


共1个答案

匿名用户

当链接非事件函数时,它们总是快速连续地执行

在这种情况下,这些函数立即运行,但这些函数是事件绑定,而不是事件。

因此,模糊事件没有链接到焦点事件,而是通过链接添加事件处理程序。

注意,链接只是允许一个接一个地调用函数,而不需要临时变量。您的代码与以下代码没有区别:

var inp = $("input");
inp.focus(function() { $(this).css("background-color", "blue"); });
inp.blur(function() { $(this).css("background-color", "red"); });