javascript – 类似的Jquery函数不会多次触发keyup()

我有几个
Javascript函数,看起来都像我.但表现得与我想要的不同.

我希望在评估输入值时,使用某些文本更新另一个元素.但是对于代码可重用性,我想将要更新的元素传递给函数,但是当我这样做时,当输入文本输入文本时,keyup()事件不会触发.

为什么是这样?

这是一个有效的,但我已明确指定要更新的元素.

键盘工作

$(function(){ 
     $("#form1").keyup(function(){
         var val = $(this).val();
         if(val.length < 5){
             $("#inputFeedback").html("Less then 5 chars");
         }else{
             $("#inputFeedback").html("More then 5 Chars!");
     }
});

这是我想要做的,但keyup()事件将不起作用.

密钥不工作

var validate = function(feedback){
   var val = $(this).val();
   if(val.length < 5){
       $(feedback).html("Less then 5 chars");
   }else{
       $(feedback).html("More then 5 Chars!");
   }
}


$(function(){
    $("#form1").keyup(validate($("#inputFeedback")));
});

注意:我也试过参数$(this)和“#inputfeedback”无济于事!

我也尝试使用经典的Javascript函数foo(bar){…}类型函数,但这与上面的上一个例子具有相同的效果.

我确信这是我做得不对或在这里理解的事情,但经过几个小时的搜索和阅读后,我找不到任何可以帮助我的东西!

谢谢

最佳答案 你绝对不能做那样的回调:

http://docs.jquery.com/How_jQuery_Works#Wrong

点赞