停止两个javascript函数同时运行?

时间:2018-02-02 18:13:50

标签: javascript jquery

有两个同时运行的jquery函数,但我只希望其中一个一次运行

$(".newspaper_nav_int").hide();
$("#hide_list").hide();

$(".newspaper_nav").hover( function() {
  hover();
})

$("#hide_list").click(function() {
  hide_list()
})


function hover() {
  $(".newspaper_nav_int").fadeIn(500)
  $("#hide_list").fadeIn(1500)
}
function hide_list() {
  $(".newspaper_nav_int").fadeOut(500)
  $("#hide_list").fadeOut(1500)
}

1 个答案:

答案 0 :(得分:1)

如果要避免这些动画重叠,可以使用标记在淡入/淡出时限制动画。在fadeInfadeOut中使用回调。这将阻止这些方法同时动画。

var animating = false;
function hover() {
  if(animating) return;
  animating = true;
  $(".newspaper_nav_int").fadeIn(500, () => { animating = false; })
  $("#hide_list").fadeIn(1500, () => { animating = false; })
}
function hide_list() {
  if(animating) return;
  animating = true;
  $(".newspaper_nav_int").fadeOut(500, () => { animating = false; });
  $("#hide_list").fadeOut(1500, () => { animating = false; });
}