我在jQuery中调用一个函数,使用'enter'事件以及'blur'事件是否可以缩短它?

时间:2013-01-11 09:32:52

标签: jquery

我想在用户模糊或输入文本框时触发一个功能。我写了这段代码来实现:

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?
}

我可以缩短绑定事件的代码吗?

2 个答案:

答案 0 :(得分:2)

是的!您可以使用.bind() jQuery方法,该方法不包括事件处理程序的映射:

$(el).bind({
    "blur click keyup": textCheck,
    "keyup": function(e) {
        if(e.keyCode == 13) {
            textCheck();
        }
    }
});

答案 1 :(得分:0)

可以这样做:{但找不到任何目的}

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

}