我觉得这个答案很简单,但我无法弄清楚甚至要搜索什么.
我想要做的是让一个.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标记只是地标选择器.
您可以传递一个按顺序调用两个函数的处理程序.
但是,为了this正确绑定,您必须使用call()或apply()来调用它们:
$("#div").click(function() {
function1.call(this);
function2.call(this);
});
Run Code Online (Sandbox Code Playgroud)
如果你像其他答案一样"自然地"调用这些函数,那么内部function1()和function2() this将被绑定window(或以undefined严格模式),而不是被点击的元素,因此它们将不会像你期望的那样运行.
| 归档时间: |
|
| 查看次数: |
1858 次 |
| 最近记录: |