如何将参数传递给jquery绑定事件?

问题描述:

请你帮助我,我找不到解决方案。我有一个参数的函数,并希望这个函数传递到一个jQuery绑定事件:如何将参数传递给jquery绑定事件?

function countChars23 (chars) { 
    var thi = $(this); 
    var len = $(this).val(); 
    if (len.length >= chars) { 
     len = len.substring(0, 22); 
     thi.val(len); 

    } 
} 

调用函数鸵鸟政策工作:

$('#name').bind('keyup', countChars23(10)); 

这种鸵鸟政策工作之一:

$('#name').bind('keyup', function() { 
    countChars23(10); 
} 

这种鸵鸟政策工作之一:

$('#name').keyup(function() { 
    countChars23(10); 
} 

很多感谢您的帮助!

可以使用data参数.bind

$('#name').bind('keyup', {chars: 10}, countChars23); 

,然后在功能与event替换声明参数,并把这个第一行:

var chars = event.data.chars; 

编辑的原因你的第二次和第三次尝试(使用额外的函数包装)不起作用是因为它们没有正确设置this。你将不得不这样称呼它:

$('#name').keyup(function() { 
    countChars23.call(this, 10); 
} 
+0

你的第一个解决方案工作!我的第二次和第三次尝试(见上文)都不起作用,不知道为什么!非常感谢! – 2012-07-20 11:53:14

+0

@ drog21我刚想出他们为什么不工作 - 请参阅更新。 – Alnitak 2012-07-20 12:42:17

+0

您的第一个解决方案只能工作。 – 2012-08-23 10:46:00