2

解決策が見つかりません。助けてください。引数を持つ関数があり、この関数を 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);

    }
}

関数の呼び出しが機能しない:

$('#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;

2回目と3回目の試行(追加の関数ラッパーを使用)が機能しない理由を編集thisします。これは、正しく設定されていないためです。あなたはそれをこのように呼ばなければならなかっただろう:

$('#name').keyup(function() {
    countChars23.call(this, 10);
}
于 2012-07-19T09:56:57.287 に答える