如何将参数传递给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);
}
你的第一个解决方案工作!我的第二次和第三次尝试(见上文)都不起作用,不知道为什么!非常感谢! – 2012-07-20 11:53:14
@ drog21我刚想出他们为什么不工作 - 请参阅更新。 – Alnitak 2012-07-20 12:42:17
您的第一个解决方案只能工作。 – 2012-08-23 10:46:00