Jquery 如何检查是否在模糊或聚焦时调用函数?

Jquery 如何检查是否在模糊或聚焦时调用函数?,jquery,Jquery,在下面的代码中,如何检查我的_func是从blur还是从focus调用的 function my_func(my_arg) { // Maintain compatibility with ECMAScript < 6 // https://stackoverflow.com/a/894877/1563422 my_arg = typeof my_arg !== 'undefined' ? my_arg : false; if(my_arg) {

在下面的代码中,如何检查我的_func是从blur还是从focus调用的

function my_func(my_arg) {
    // Maintain compatibility with ECMAScript < 6
    // https://stackoverflow.com/a/894877/1563422
    my_arg = typeof my_arg !== 'undefined' ? my_arg : false;

    if(my_arg) {
        // do something
    }
}

// Apply to both blur and focus, in case a user clicks from a field
// onto the background of the page, without focusing another field first
$('#appform').on({
    'blur' : my_func,
    'focus': my_func
}, 'input, select');
事件对象的类型字段将包含触发它的事件的名称,尽管并不总是与您为处理程序定义的名称相同;模糊变为焦点输出,例如:

Event.type只读属性返回一个包含事件类型的字符串。它是在构造事件时设置的,是通常用于引用特定事件(如单击、加载或错误)的名称

函数my\u funcmy\u arg{ console.logmy_arg.type; } $'appform'。在{ “模糊”:我的函数, “焦点”:我的功能 },'输入,选择'; ab事件对象的类型字段将包含触发它的事件的名称,尽管并不总是与您为处理程序定义的名称相同;模糊变为焦点输出,例如:

Event.type只读属性返回一个包含事件类型的字符串。它是在构造事件时设置的,是通常用于引用特定事件(如单击、加载或错误)的名称

函数my\u funcmy\u arg{ console.logmy_arg.type; } $'appform'。在{ “模糊”:我的函数, “焦点”:我的功能 },'输入,选择';
ab通过将绑定函数作为事件处理程序传递,您可能可以逃脱惩罚

$('#appform').on({
    'blur' : invalid_style.bind(null, 'from-blur'),
    'focus': invalid_style.bind(null, 'from-focus')
}, 'input, select');
bind调用返回一个函数对象,其中一些参数已绑定到该对象。在我的示例中,我们将传递一个null作为上下文,然后将一个字符串作为第一个参数传递给无效的_样式函数

在函数中,您现在可以检查my_arg参数,并从调用函数的位置进行解密


参考资料:

您可以通过将绑定函数作为事件处理程序传递出去

$('#appform').on({
    'blur' : invalid_style.bind(null, 'from-blur'),
    'focus': invalid_style.bind(null, 'from-focus')
}, 'input, select');
bind调用返回一个函数对象,其中一些参数已绑定到该对象。在我的示例中,我们将传递一个null作为上下文,然后将一个字符串作为第一个参数传递给无效的_样式函数

在函数中,您现在可以检查my_arg参数,并从调用函数的位置进行解密


引用:

事件不是总是传递给处理程序吗?你是对的;谢谢你指出这一点。我在回答中纠正了这一点。事件不总是传递给处理程序吗?你是对的;谢谢你指出这一点。我在回答中更正了这一点。如果您只是控制台my_参数,您可以看到类型;如果您只是控制台my_参数,您可以使用给定代码将类型视为对象中的一个节点,假设无效的_样式为my_func@Huangism对不起,我已经更正了,你说得对,它们是同一个函数。如果你只是控制台my_参数,你可以看到类型;如果你只是控制台my_参数,你可以看到类型作为对象中的一个节点,使用你给定的代码,假设invalid_样式是my_func@Huangism对不起,我已经更正了,你是对的,它们是相同的函数。