我写了一些这样的jQuery代码:
$('#checkbox').click(function() {
// do stuff
});
function myFunction() {
$('#checkbox').click();
}
此处所需的行为是在执行 myFunction 时调用复选框单击处理程序。但是,我观察到的行为是单击处理程序运行并且复选框被切换。如何在不切换复选框的情况下运行点击处理程序?
$('#checkbox').triggerHandler("click");
或者使您的点击处理程序成为您可以直接调用的函数。
试试这样:
$('#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 );
查看工作演示
您应该在复选框更改时调用一个方法,以便您可以在单击事件之外调用相同的方法:
$('#checkbox').change(function() {
someMethod();
});
function myFunction(){
someMethod();
}
您如何在函数中进行处理并让点击处理程序调用该函数:
function myFunction() {
// do stuff
}
$('#checkbox').click(function() {
myFunction()
});