如何在以下代码中检查my_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');
答案 0 :(得分:3)
事件对象的type
字段将包含触发它的事件的名称(虽然并不总是您为处理程序定义的名称;例如blur
变为focusout
:
Event.type只读属性返回包含事件类型的字符串。它是在构造事件时设置的,并且是通常用于引用特定事件的名称,例如单击,加载或错误
https://developer.mozilla.org/en-US/docs/Web/API/Event/type
function my_func(my_arg) {
console.log(my_arg.type);
}
$('#appform').on({
'blur' : my_func,
'focus': my_func
}, 'input, select');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="appform">
<input>
<input>
<select><option>a</option><option>b</option></select>
答案 1 :(得分:1)
您可以将绑定函数作为事件处理程序传递。
$('#appform').on({
'blur' : invalid_style.bind(null, 'from-blur'),
'focus': invalid_style.bind(null, 'from-focus')
}, 'input, select');
bind
调用返回一个带有一些参数的函数对象&#34; bound&#34;它。在我的示例中,我们传递null
作为上下文,然后传递一个字符串作为invalid_style
函数的第一个参数。
在您的函数中,您现在可以检查my_arg
参数并从您的函数调用位置进行解密。