单击后如何取消触发器

时间:2016-12-20 04:46:32

标签: javascript jquery click

在我的网站上,我有一个封闭的手风琴菜单(菜单-1)。如果用户在网站上的前5秒没有点击菜单,则菜单会自动使用此js代码下拉:

setTimeout(function () {
    $('#menu-1').trigger('click');
}, 5000);

我的问题是,当用户没有等待5秒钟,并且在触发前点击菜单,触发器仍然关闭并最终关闭菜单。如果用户在触发菜单之前单击菜单,如何使触发器取消?

1 个答案:

答案 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;
    }
});