如何将参数传递给jquery bind-event?

f_u*_*_up 2 jquery arguments bind

请你能帮助我,我找不到解决办法.我有一个带参数的函数,并希望将此函数传递给jquery bind-event:

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

    }
}
Run Code Online (Sandbox Code Playgroud)

调用该函数不起作用:

$('#name').bind('keyup', countChars23(10));
Run Code Online (Sandbox Code Playgroud)

这也不起作用:

$('#name').bind('keyup', function() {
    countChars23(10);
}
Run Code Online (Sandbox Code Playgroud)

这也不起作用:

$('#name').keyup(function() {
    countChars23(10);
}
Run Code Online (Sandbox Code Playgroud)

非常感谢您的帮助!

Aln*_*tak 9

您可以使用该data参数.bind:

$('#name').bind('keyup', {chars: 10}, countChars23);
Run Code Online (Sandbox Code Playgroud)

然后在您的函数中替换声明的参数,event并将其放在第一行:

var chars = event.data.chars;
Run Code Online (Sandbox Code Playgroud)

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

$('#name').keyup(function() {
    countChars23.call(this, 10);
}
Run Code Online (Sandbox Code Playgroud)