使用单个.click()激活多个函数?

RAB*_*RAB 2 jquery

我觉得这个答案很简单,但我无法弄清楚甚至要搜索什么.

我想要做的是让一个.click()事件按顺序触发两个函数.Function1清除目标区域,然后function2应该是.slideDown().

    function function1(){
    $(this).parents('#div').siblings().nextAll('#div').hide();
    };

function function2(){
    $(this).parents('#div').siblings().nextAll('#div').slideDown(1000);
    };

$("#div").click(function1 + function2);
Run Code Online (Sandbox Code Playgroud)

我试过以下,无济于事......

    $("#div").click(function1, function2);
    $("#div").click(function1,function2);
    $("#div").click(function1 + function2);
    $("#div").click(function1+function2);
Run Code Online (Sandbox Code Playgroud)

当function1和function2独立触发时,它们可以正常工作.只有当我试图将它们组合在一起时才会这样.

非常感谢你提前!

编辑:哦,#div标记只是地标选择器.

Fré*_*idi 6

您可以传递一个按顺序调用两个函数的处理程序.

但是,为了this正确绑定,您必须使用call()apply()来调用它们:

$("#div").click(function() {
    function1.call(this);
    function2.call(this);
});
Run Code Online (Sandbox Code Playgroud)

如果你像其他答案一样"自然地"调用这些函数,那么内部function1()function2() this将被绑定window(或以undefined严格模式),而不是被点击的元素,因此它们将不会像你期望的那样运行.