我有一个汉堡包图标,用我的sidenav动画打开和关闭。我不得不放置功能会造成延迟,因此用户不会双击并在点击其区域外点时让汉堡包动画关闭(这是因为当点击页面上的任何位置时sidenav可以关闭)
按钮延迟似乎工作正常,但是我的汉堡包在第一次出现后不会再次动画。有人可以帮我找出原因吗?
$hamburger.on("click", function(e) {
$(".hamburger").toggleClass("is-active");
event.preventDefault();
var el = $(this);
el.prop('disabled', true);
var time = setTimeout(function(){el.prop('disabled', false); }, 1000);
$(document).on("click", function(e) {
if($hamburger.hasClass("is-active")){
clearTimeout(time);
$hamburger.toggleClass("is-active");
}
});
});
更新
我将该文件移出该功能并将其更改为窗口onclick。然后给了汉堡包与滑块动画持续时间相同的延迟,这样只有在滑块完全用完后才会点击它,这有助于避免我遇到的其他一些问题。谢谢大家的帮助。
$hamburger.on("click", function(e) {
$hamburger.toggleClass("is-active");
event.preventDefault();
var el = $(this);
el.prop('disabled', true);
setTimeout(function(){el.prop('disabled', false); }, 300);
});
$(window).click(function() {
if($hamburger.hasClass("is-active")){
$hamburger.removeClass("is-active");
}
});