是否可以在不执行click事件的情况下执行内联单击事件功能?

时间:2015-11-06 14:14:33

标签: javascript jquery

通过例子解释:

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

在点击事件功能中,我有代码可以执行各种操作,具体取决于选中的复选框。

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

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

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

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

我非常希望保持函数内联以保持代码流。此外,它不足以让事件在事件之外,但它并不像我想要编写代码两次那么小。

3 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:5)

triggerHandler仅触发处理程序:

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

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

  

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

答案 2 :(得分:2)

你可以考虑调用似乎做你需要的功能triggerHandler

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

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