jQuery .on keyup和模糊触发onload只

问题: blurkeyup事件每次触发一次,只有onload。 我怎样才能使它们正常工作?

jQuery的:

 function myFunction(text){ alert(text); } $('#input1').on({ keyup: myFunction('keyup'), blur: myFunction('blur'), focus: function(){console.log('focus!');} }); 

小提琴: http : //jsfiddle.net/GrMQX/

您没有为keyupblur指定函数,而是指定myFunction的执行结果。

像这样改变它:

 $('#input1').on({ keyup: function() { myFunction('keyup'); }, blur: function() { myFunction('blur'); }, focus: function() { console.log('focus!'); } }); 

DEMO

你没有将这些函数声明为回调,你正在执行它们并且它们的返回结果被指定为回调(它不起作用)。

试试这个:

  $('#input1').on({ keyup: function() { myFunction('keyup') }, blur: function() { myFunction('blur') }, focus: function(){console.log('focus!');} }); 

你需要传递一个函数作为参数..你传递被调用函数的返回值

 function myFunction(text){ alert(text); } $('#input1').on({ keyup: function(){myFunction('keyup');}, blur: function(){myFunction('blur');}, focus: function(){console.log('focus!');} }); 

或者您可以将myFunction转换为函数生成器

 function myFunction(text){ return function(){ console.log(text); } } $('#input1').on({ keyup: myFunction('keyup'), blur: myFunction('blur'), focus: function(){console.log('focus!');} }); 

演示 http://jsfiddle.net/gaby/GrMQX/6/

当你以这种方式调用它们时,你实际上正在执行这些函数。 试试这个:

 $('#input1').on({ keyup: function(){myFunction('keyup')}, blur: function(){myFunction('blur')}, focus: function(){console.log('focus!');} }); 

jsFiddle示例

与.on()事件一起使用

 $(document).on("keyup blur", "#input1", function(event) { // your code });