2

请你能帮助我,我没有找到解决方案。我有一个带参数的函数,并希望将此函数传递给 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);
}

非常感谢您的帮助!

4

1 回答 1

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-19T09:56:57.287 回答