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 回答