如何从另一个click事件函数内的click事件调用函数?

时间:2019-04-12 21:41:21

标签: jquery

我有2个函数,当单击一个元素时会触发。但是,我想使用应该通过click事件在另一个函数中执行的第一个函数。我仍然是新手。

我已经尝试调用该函数,并在要执行该函数的其他函数中声明函数名称。因为第一个功能只能通过其元素上的点击事件来触发,所以它不起作用吗?我也将click事件嵌套在一个函数上,但效果不佳。

$(document).ready(function()
function toggleMenuClick(){

$('.menu-link').click(function (normal){
    normal.preventDefault();
    $('.menu-link').toggleClass('close');
    $('.overlay-menu').toggleClass('active');
    $('.menu-link').toggleClass('fixed');
    $('nav ul').toggleClass('show');
    $('nav ul li').toggleClass('fade-in');
    $('body').toggleClass('min-height');

    if ($(window).scrollTop() <= 99){
        $('.menu-link').toggleClass('white');
    }
});

}

toggleMenuClick();

$('.scroll-link').click(function(navigate){
   navigate.preventDefault();
      $("html, body").animate({
      scrollTop: $(this.hash).offset().top
      }, 700);
toggleMenuClick();
});
});

我也希望在单击toggleMenuClick时切换.scroll-link中的所有类。

1 个答案:

答案 0 :(得分:2)

您需要在点击处理程序之外将toggleMenuClick设为一个单独的函数,以便您可以独立调用它。

它看起来像这样:

var toggleMenuClick = function() {
    // Do classes stuff...
}


$('.menu-link').click(function(e) {
    e.preventDefault();
    toggleMenuClick();
});

$('.scroll-link').click(function(e){
    // Do stuff...

    // Now you can call your function
    toggleMenuClick();
});