我有一个下拉菜单,在dekstop版本中,我希望延迟1.5秒,但是当平板电脑或iphone的宽度已经更改(例如小于768px)时,我想将settimeout更改为ZERO / 0?有可能做到吗?实际上,我在菜单中添加了一个类,因此它可能会显示出来,但是当它关闭时,我将settimeout设置为1.55s。但是,如果您使用的是手机或平板电脑,要等待那么长时间有点烦人。...
$menuHolder.on('click', function() {
if ($menu.hasClass('open') || $navMenu.hasClass('visible')) {
setTimeout(function() {
$menu.removeClass('open');
}, 1550);
$navMenu.removeClass('visible')
return;
}
$menu.addClass('open');
$navMenu.addClass('visible');
})
var windowWidth = $win.width();
if (windowWidth < 769) {
$menuHolder.on('click', function() {
if ($menu.hasClass('open') || $navMenu.hasClass('visible')) {
setTimeout(function() {
$menu.removeClass('open');
}, 0);
$navMenu.removeClass('visible')
return;
}
$menu.addClass('open');
$navMenu.addClass('visible');
})
}
答案 0 :(得分:0)
考虑到您其余的代码都能正常工作(我们看不到您的变量$win
,$menuHolder
等来自何处),我将按照以下方式处理您的问题:>
var windowWidth = $win.width();
$menuHolder.on('click', function() {
if ($menu.hasClass('open') || $navMenu.hasClass('visible')) {
setTimeout(function() {
$menu.removeClass('open');
}, (windowWidth < 769 ? 0 : 1550)); // here is the change for mobile devices
$navMenu.removeClass('visible')
return;
}
$menu.addClass('open');
$navMenu.addClass('visible');
});
希望有帮助。...