0

次のようなjQueryコードをいくつか書きました。

$('#checkbox').click(function() {
    // do stuff
});

function myFunction() {
    $('#checkbox').click();
}

ここで望ましい動作は、myFunction の実行時にチェックボックスのクリック ハンドラーが呼び出されることです。ただし、私が観察した動作は、クリック ハンドラーが実行され、チェックボックスが切り替えられることです。チェックボックスを切り替えずにクリックハンドラーを実行するにはどうすればよいですか?

4

4 に答える 4

2
$('#checkbox').triggerHandler("click");

または、クリック ハンドラーを直接呼び出すことができる関数にします。

于 2013-04-29T19:02:06.253 に答える
0

このようにしてみてください:

$('#checkbox').click(function(event) {
    event.preventDefault();
    // do stuff
});

実際のデモを見る


myFunction() から呼び出されたかどうかを区別する別のオプション:

$('#checkbox').click(function(event, caller) {
    if (caller == 'MF') {
        event.preventDefault();
    }
    // do stuff
    $(this).parent().append('<span>It wasn\'t checked</span><br>');
});

function myFunction() {
    $('#checkbox').trigger('click', ['MF']);
}

$('#clk').on('click', myFunction );

実際のデモを見る

于 2013-04-29T18:59:27.430 に答える
0

チェックボックスが変更されたときにメソッドを呼び出す必要があるため、クリックイベントの外で同じメソッドを呼び出すことができます。

$('#checkbox').change(function() {
    someMethod();
});

function myFunction(){
    someMethod();
}
于 2013-04-29T19:00:04.170 に答える
0

関数内で処理を行い、クリック ハンドラーに関数を呼び出させるのはどうでしょうか。

function myFunction() {
    // do stuff
}

$('#checkbox').click(function() {
  myFunction()
});
于 2013-04-29T19:00:11.747 に答える