0

私は単にjsファイルを持っていますが
、コードのパラメータで関数を呼び出すことはできません

function removetr(str){
$(".g"+str).val("");
$(".ga"+str).val("");
$(".gb"+str).val("");
}
$(document).ready(function(){
$("input.buttonno1").click( removetr(1) );
});

値を削除したい入力のクラスはg1、ga1、およびgb1です

コードを次のように変更すると、

function removetr(){
str=1;
$(".g"+str).val("");
$(".ga"+str).val("");
$(".gb"+str).val("");
}
$(document).ready(function(){
$("input.buttonno1").click( removetr );
});

それは仕事です

4

1 に答える 1

2

関数参照をイベント ハンドラーに渡す必要があります。現在のコードは関数を直接呼び出しています。関数をイベント ハンドラーとして作成するか、匿名関数の参照をクリック ハンドラーに渡します。

イベントハンドラとして:
function removetr(e) {
    var str;
    str = e.data.str;
    $(".g"+str).val("");
    $(".ga"+str).val("");
    $(".gb"+str).val("");
}

$(function () {
    $("input.buttonno1").click({str: '1'}, removetr);
});
無名関数参照として:
function removetr(str) {
    $(".g"+str).val("");
    $(".ga"+str).val("");
    $(".gb"+str).val("");
}
$(function () {
    $("input.buttonno1").click(function () {
        removetr(1)
    });
});
于 2013-09-25T22:22:52.803 に答える