Javascript 计时器上的preventDefault()

Javascript 计时器上的preventDefault(),javascript,jquery,Javascript,Jquery,是否有人知道是否有办法防止默认(),但在计时器上,因此默认操作会在特定时间后恢复 以下是我目前掌握的情况: function setResetInterval(bool){ var el = $('article'); if(bool){ timer = setInterval(function(){ setTimeout(function(){ console.log('default prevented'); e.pre

是否有人知道是否有办法防止默认(),但在计时器上,因此默认操作会在特定时间后恢复

以下是我目前掌握的情况:

function setResetInterval(bool){
  var el = $('article');
  if(bool){
        timer = setInterval(function(){
      setTimeout(function(){
        console.log('default prevented');
          e.preventDefault();
      }, 500);
    },1000);
  }else{
    clearInterval(timer); 
  }
}

if(object.touch.touch){
    object.header.menu_button.attr('href',null);
    object.touch.articles = $('article');
    object.content_blocks.on('click','article',{},function(e){
    object.touch.articles.removeClass('on');
    $(this).addClass('on');
    e.stopPropagation();
    setResetInterval(true);
         setTimeout(
                function() { setResetInterval(false); }, 500);
    });
}
问题是,该函数是在点击完成后调用的,并且不会阻止该操作。另一种方法是阻止单击时的默认操作,即停止在移动设备上滚动


更清楚地想一想,真正的问题是所讨论的点击标签基本上是移动设备上的整个屏幕宽度

根据Cayce所说的,实现这一点的一种方法是将功能绑定到稍后删除的类上

在本例中,只要div具有
.red
类,就会阻止默认设置,而
setTimeout
将在3秒后删除该类

JS:


在操作后使用settimeout倒计时,并将目标id或类更改为可以执行默认操作的内容。这是一个聪明的解决方案,我感谢您的回答!
$('body').on('click', '.red', function (e) {
    e.preventDefault();
    console.log('I only show up while default is prevented');
});

$('body').on('click', 'div', function () {
    console.log('I will always show up');
});

setTimeout(function () {
    $('div').removeClass('red');
},3000);