jquery - 使用单个 .click() 触发多个函数?

标签 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);

我已经尝试了以下方法,但没有成功...

    $("#div").click(function1, function2);
    $("#div").click(function1,function2);
    $("#div").click(function1 + function2);
    $("#div").click(function1+function2);

当 function1 和 function2 独立触发时,它们可以正常工作。只有当我尝试将它们一起解雇时才会出现这种情况。

提前非常感谢您!

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

最佳答案

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

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

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

如果您“自然地”调用函数,就像其他答案一样,那么在 function1()function2() 内部 this 将是绑定(bind)到 window(或在严格模式下绑定(bind)到 undefined),而不是绑定(bind)到单击的元素,因此它们不会按照您的预期运行。

关于jquery - 使用单个 .click() 触发多个函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14134486/

相关文章:

javascript - 避免在 html 标签元素中为相同的主题标签使用空包装

javascript - 检查 for 循环内的 radio 输入(仅包含值的输入)

jquery - 模态加载页眉和页脚而不是仅仅加载页面

javascript - jqplot如何显示饼图外的标签?

javascript - 从mysql数据库中选择所有 'id'和 'app_img_path'

javascript - 如何使用 id 显示此模式中的 .php 文件?

javascript - jQuery 意外 token 错误 =

php - JQuery UI 对话框 - 只有第一个链接有效

jQuery Select2 3.5.2 在动态创建的下拉列表中设置值

javascript - 用于验证文本框的 Jquery 代码无法正常工作