是否可以在不执行点击事件的情况下执行内联点击事件函数

Is it possible to execute an inline click event function without executing a click event?

本文关键字:事件 执行 情况下 函数 是否      更新时间:2023-09-26

举例说明:

$(".myCheckboxes").click(function () {
    ...
});

在点击事件函数中,我有一些代码可以根据选中的复选框执行各种操作。

然而,我需要先运行这段代码来初始化它,有点像这样:

$(".myCheckboxes").click(function () {
    ...
}).click();

它运行代码并进行初始化,但它也会单击我的所有复选框,使它们都反转其值。

是否可以在不执行点击事件的情况下执行内联点击事件函数?

我非常希望保持函数内联,以保持代码流。此外,它还不够大,不能在事件之外具有函数,但它还没有小到我想写两次代码的程度。

triggerHandler只触发处理程序:

$(".myCheckboxes").click(function () {
    ...
}).each(function(i, checkbox) { 
    $(checkbox).triggerHandler('click'); 
}

请注意,如果您希望触发所有复选框的处理程序,而不是仅触发第一个复选框,则需要迭代复选框:

而.trigger()将对jQuery匹配的所有元素进行操作对象,.trigerHandler()只影响第一个匹配的元素。

使用命名函数作为处理程序,绑定并执行它:

$(".myCheckboxes").click(clickHandler);
clickHandler();

您可以考虑调用函数triggerHandler,该函数似乎可以满足您的需要。

$(".myCheckboxes").click(function () {
...
}).triggerHandler('click');

注意:我还没有测试过这个解决方案。