Jquery 使用单个。单击()激发多个函数?

Jquery 使用单个。单击()激发多个函数?,jquery,Jquery,我觉得这个答案会很简单,但我甚至不知道该搜索什么 我想做的是让一个.click()事件按顺序触发两个函数。Function1清除所需的区域,然后function2应为.slideDown() 我试过了,但没用 $("#div").click(function1, function2); $("#div").click(function1,function2); $("#div").click(function1 + function2); $("#div").cl

我觉得这个答案会很简单,但我甚至不知道该搜索什么

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

我试过了,但没用

    $("#div").click(function1, function2);
    $("#div").click(function1,function2);
    $("#div").click(function1 + function2);
    $("#div").click(function1+function2);
当function1和function2单独启动时,它们工作正常。只有当我试着把它们放在一起的时候

提前非常感谢

编辑:
哦,而且#div标记只是placemarker选择器。

这对你有用-试试看

$(selectorForButton).click(
  function(e){
    function1();
    function2();
 });

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

但是,为了正确绑定
,您必须使用或调用它们:

$("#div").click(function() {
    function1.call(this);
    function2.call(this);
});

如果您像其他答案一样“自然”调用函数,那么在
function1()
function2()
中,该
将绑定到
窗口(或在严格模式下绑定到
未定义的
),而不是被单击的元素,因此,它们的行为将不符合您的预期。

您需要使用
回调
,如下所示:

$(document).ready(function(){
    $('#test').click(function(){
        one();
        two();
    });
});



function one(){
    alert("I am function one");
}

function two(){
    alert("I am function two");
}

​这里有一个工作

在click方法中调用这两个方法。@RAB:您没有提到它需要一个名为this的处理程序。我们都假设它们是独立的函数,没有任何params@Shiva你是什么意思
click()
接受一个处理程序,并且
这个
在这两个函数中使用得很清楚。我的意思是说函数1,2有一个必须传递给它的参数……万岁!!我一直在阅读/尝试答案,但没有一个有效。现在,让我们假设我不关心它们的顺序……其他的答案会起作用吗?具体来说,不需要.call()。@RAB,不,答案不起作用,因为问题来自于
this
的绑定,而不是顺序或并行调用。您必须使用
call()
apply()
(或
$.proxy()
,或类似工具)将此
正确地“传递”到被调用的函数。感谢您的解释。这非常有帮助。我现在可以进一步研究这一点,以便更好地理解。不知道从哪里开始搜索/研究都很麻烦。非常感谢您的回答,但由于某些原因,这不起作用。似乎它需要一个函数。调用(这个)oops我忘了冒号
最后,更新了答案,现在检查一下。哦,我讨厌你浪费时间。我得到了一个解释我做错了什么的答案。谢谢你!非常感谢您的回答,但由于某些原因,这不起作用。似乎它需要一个函数。调用(此)
$(document).ready(function(){
    $('#test').click(function(){
        one();
        two();
    });
});



function one(){
    alert("I am function one");
}

function two(){
    alert("I am function two");
}