在我的网站上,我有一个封闭的手风琴菜单(菜单-1)。如果用户在网站上的前5秒没有点击菜单,则菜单会自动使用此js代码下拉:
setTimeout(function () {
$('#menu-1').trigger('click');
}, 5000);
我的问题是,当用户没有等待5秒钟,并且在触发前点击菜单,触发器仍然关闭并最终关闭菜单。如果用户在触发菜单之前单击菜单,如何使触发器取消?
答案 0 :(得分:4)
您需要将超时ID存储在变量中,以便稍后在用户单击菜单时取消它。像这样......
var timeout_id = setTimeout(function () {
$('#menu-1').trigger('click');
}, 5000);
$('#menu-1').click(function() {
if (timeout_id) {
clearTimeout(timeout_id);
timeout_id = 0;
}
});