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