我在jQuery中调用一个函数,使用';输入';事件以及';模糊';有可能缩短它吗?
我想在用户模糊或输入文本框时触发一个函数。我编写这段代码是为了实现这一点:我在jQuery中调用一个函数,使用';输入';事件以及';模糊';有可能缩短它吗?,jquery,Jquery,我想在用户模糊或输入文本框时触发一个函数。我编写这段代码是为了实现这一点: text:function(input,el){ var textCheck = function(){ var value = $.trim(el.val()); if(!value){ el.addClass('error'); }else{ el.removeClass('error'); }
text:function(input,el){
var textCheck = function(){
var value = $.trim(el.val());
if(!value){
el.addClass('error');
}else{
el.removeClass('error');
}
}
$(el).on('blur click keyup', textCheck); //calling the function
$(el).on('keyup', function(e){ ////calling the function again
if(e.keyCode == 13){
textCheck();
}
});
//instead of calling 2 times, how can i put together as single call?
}
我可以缩短绑定事件的代码吗?可以这样做:{但是找不到这个的任何用途}
text:function(input,el){
var textCheck = function(e){
if(e && e.type == "keyup" && e.keyCode == 13)
textCheck();
var value = $.trim(el.val());
if(!value){
el.addClass('error');
}else{
el.removeClass('error');
}
}
$(el).on('blur click keyup', textCheck); //calling the function
}
对!!您可以使用
.bind()
jQuery方法,该方法不包括事件处理程序的映射:
$(el).bind({
"blur click keyup": textCheck,
"keyup": function(e) {
if(e.keyCode == 13) {
textCheck();
}
}
});
第二次绑定的目的是什么?您可以在第一次绑定到
keyup
时无条件地绑定textCheck
。还接受事件映射,并且是jQuery更高版本中绑定事件的首选方法。