我想在一个对象上观察两个事件,
input.blur(function(event) {
ajaxSubmit(this);
event.preventDefault();
});
form.submit(function(event) {
ajaxSubmit(this);
event.preventDefault();
});
但是我觉得这不够干,我可以将两个事件绑定到我的对象input
并执行我的函数ajaxSubmit()
如果要么开火吗?
如果你能做到的话,超级酷的是什么:
input.bind("blur", "submit", function(event) {
ajaxSubmit(this);
event.preventDefault();
});
答案 0 :(得分:10)
答案 1 :(得分:4)
是的,只需声明该函数,然后将其绑定到事件:
var ajaxCallback = function(event){
ajaxSubmit(this);
event.preventDefault();
};
input.blur(ajaxCallback);
form.submit(ajaxCallback);
关于变量声明的注意事项:
正如@cletus指出的那样,我声明函数的方式提供了一个变量,该变量对于它定义的任何范围都是私有的。我总是以这种方式编程以最小化污染全局命名空间。但是,如果您不定义此回调和将其绑定到同一代码块中的元素,则应以这种方式定义:
function ajaxCallback(event){ ... }
这样,只要您稍后使用.blur
和.submit
方法将其绑定,就可以使用它。