繁体   English   中英

如果用户单击Javascript或jQuery中的div,则停止执行功能

[英]Stop execution of function if user clicks on a div in Javascript or Jquery

当用户加载页面时,我会触发一个“计时器”,该计时器将在8秒钟后显示该消息。 我的问题是,如果用户在这8秒之前单击div #contentAfterIntro,我希望阻止显示该消息。

xoxo();
function xoxo(e) {
   setTimeout(showMessage, 8000);
   $("#contentAfterIntro").on('click', function(e) {
     e.stopPropagation();
   });
}

function showMessage() {   
    $('#msg').addClass('visible');
    console.log('show msg');
  }

上面的代码不起作用。 在我的测试中,即使我在8秒之前单击,也会显示消息。

如何实现呢?

setTimeout返回一个ID,您可以使用该ID取消超时:

xoxo();
function xoxo(e) {
   var id = setTimeout(showMessage, 8000);
   $("#contentAfterIntro").on('click', function(e) {
     e.stopPropagation();
     clearTimeout(id); // <--- clear timeout
   });
}

function showMessage() {   
    $('#msg').addClass('visible');
    console.log('show msg');
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM