2016-12-20 62 views
0

在我的网站上,我有一个关闭的手风琴菜单(菜单-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; 
    } 
}); 
+0

变量是工作,但菜单最终还是在用户打开它 –

+0

没关系关闭后,它的作品,我没有看到你的编辑 –

+0

@AlexKhomyakov或许你会接受这个答案? – user1751825